m3u8是一種很常見的視頻格式,下面我推薦一種實現(xiàn)方式
首先在model下的gradle添加
implementation'com.github.leifzhang:IjkLib:0.4.4'
xml中
<tv.danmaku.ijk.media.widget.media.IjkVideoView? android:id="@+id/ijvideo" android:layout_width="wrap_content" android:layout_height="wrap_content" />
java代碼
IjkVideoView mIjvideo=findViewById(R.id.ijvideo);
mIjvideo.changeAspectRaito(3);
IjkMediaPlayer.loadLibrariesOnce(null);
IjkMediaPlayer.native_profileBegin("libijkplayer.so");
AndroidMediaController controller = new AndroidMediaController(this, false);
mIjvideo.setMediaController(controller);
String url = getUrl();//換成自己的m3u8地址
mIjvideo.setVideoURI(Uri.parse(url));
mIjvideo.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {? ? ? ????????????????? ? @Override public void onPrepared(IMediaPlayer iMediaPlayer)? ?{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iMediaPlayer.start();???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? }});
mIjvideo.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() { ???????????????????????????? @Override public void onPrepared(IMediaPlayer iMediaPlayer) {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?iMediaPlayer.start();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}});
@Override protected void onResume() { super.onResume(); mIjvideo.resume(); if (!mIjvideo.isPlaying()) { mIjvideo.start(); }}@Override protected void onPause() { super.onPause(); mIjvideo.pause();}@Override protected void onDestroy() { super.onDestroy(); IjkMediaPlayer.native_profileEnd(); }