//如果是要播放网络的千万别忘了网络权限:<uses-permission android:name=”android.permission.INTERNET”/>
//第一步写布局文件video_background.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="center" />
</RelativeLayout>
//第二步 在res文件夹下新建raw文件夹,将准备好的mp4文件放进去
//第三步 登录注册页面引用布局
<!-- 引入背景布局 -->
<include layout="@layout/video_background" />
//注意如果页面有其他控件,比如Button,别让背景视频把你的Button覆盖了,可以添加:
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
//第四步 在你的登录注册页面的Activity页面使用。
final VideoView videoview=(VideoView)findViewById(R.id.videoview);
final String videoPath = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.文件名).toString();
myVideoView.setVideoPath(videoPath);
myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mp.setLooping(true);
}
});
//如果设置网络视频的话,把这个改一下就行:
final Uri uri = Uri.parse("https://ali-v4d.xiaoying.tv/20181026/zfg651/3zlmXs9185.mp4");
videoView.setVideoURI(uri);
//还可以设置这个背景视频为静音:
// videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
//
// @Override
// public void onPrepared(MediaPlayer mp) {
// mp.setVolume(0f, 0f);//设置视频为静音
// mp.start();
// }
// });
//简单的MediaPlayer播放网络音乐,开辟子线程进行:
new Thread(new Runnable() {
@Override
public void run() {
MediaPlayer mediaPlayer=new MediaPlayer();
try {
String url = "http://cdnringuc.shoujiduoduo.com/ringres/userv1/a48/471/54957471.aac";
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();//准备
mediaPlayer.setLooping(true);//循环播放同一首音乐
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();//开始播放
// mediaPlayer.stop();//停止播放
// mediaPlayer.pause();//暂停
int duration = mediaPlayer.getDuration();//获取歌曲时长(毫秒)
String timelong = duration / 1000 + "秒";//除以1000(秒)
Log.e("TAG",timelong+"");//打印
}
}).start();
//这个音乐虽然可以播放 但是存在问题,不能常驻后台,一旦你关闭应用到后台,几秒后它自己就被杀死了。 以下是写了个Service常驻后台方法:
//第一步:写个BackGroundService类继承Service,具体操作都在这个类里:
public class BackGroundService extends Service { Notification notification; private Context mContext; private MediaPlayer mediaPlayer; private boolean isrun = true; public BackGroundService() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { mContext = this; Intent notificationIntent = new Intent(mContext, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); //1.通知栏占用,不清楚的看官网或者音乐类APP的效果 notification = new Notification.Builder(mContext) .setSmallIcon(R.drawable.ic_launcher_background)//Notification显示的图片 .setWhen(System.currentTimeMillis()) .setTicker("音乐") .setContentTitle("音乐标题") .setContentText("音乐的内容") .setOngoing(true) .setPriority(PRIORITY_MAX) .setContentIntent(pendingIntent) .setAutoCancel(false) .build(); //startForeground如果id为0,那么notification将不会显示 startForeground(100, notification); //播放本地音乐 if (mediaPlayer == null) { mediaPlayer = MediaPlayer.create(mContext, R.raw.micmp3); mediaPlayer.setLooping(true); mediaPlayer.start(); } //播放网络音乐,别忘了加网络权限 // if (mediaPlayer==null){ // new Thread(new Runnable() { // @Override // public void run() { // mediaPlayer = new MediaPlayer(); // try { // String url = "http://cdnringuc.shoujiduoduo.com/ringres/userv1/a48/471/54957471.aac"; // mediaPlayer.setDataSource(url); // mediaPlayer.prepare();//准备 // mediaPlayer.setLooping(true);//循环播放同一首音乐 // } catch (IOException e) { // e.printStackTrace(); // } // mediaPlayer.start();//开始播放 mediaPlayer.stop();//停止播放 mediaPlayer.pause();//暂停 // int duration = mediaPlayer.getDuration();//获取歌曲时长(毫秒) // String timelong = duration / 1000 + "秒";//除以1000(秒) // Log.e("TAG", timelong + "");//打印 // } // }).start(); // } //-----------------------开启线程(或者需要定时操作的事情用到)----------------------- // new Thread() { // @Override // public void run() { // super.run(); // while (isrun) { // // //你需要执行的任务 // try { // Thread.sleep(10000); // } catch (InterruptedException es) { // es.printStackTrace(); // } // OkHttpClientManager.postAsyn(OkHttpClientManager.ip + "item/returnDeadline", new OkHttpClientManager.ResultCallback<MyResponse1>() { // @Override // public void onError(Request request, Exception e) { // Log.e("=============", "1"); // // } // // @Override // public void onResponse(MyResponse1 response) throws JSONException { // // } // }, new OkHttpClientManager.Param("", "")); // // } // //进行自己的操作 // } // }.start(); return START_STICKY; } @Override public IBinder onBind(Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); } @Override public void onDestroy() { isrun = false; stopForeground(true); mediaPlayer.release(); stopSelf(); super.onDestroy(); } }
//第二步 在哪里需要点击播放,就在哪调用开启这个Service就行:
Intent forgroundService = new Intent(this,BackGroundService.class); startService(forgroundService);//开启服务
//stopService(forgroundService);//关闭服务
//—————————————————————————完—————————————————————————
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/118349.html