导入依赖:
implementation 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'
XML布局需要一个:SurfaceView
<SurfaceView
android:id="@+id/sur"
android:layout_width="match_parent"
android:layout_height="300dp"/>
JAVA代码:
首先implements SurfaceHolder.Callback
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, View.OnClickListener {
在surfaceCreated中实例化surface
@Override
public void surfaceCreated(SurfaceHolder holder) {
//实例化surface
surface = holder.getSurface();
}
使用AndroidMediaPlayer:
final AndroidMediaPlayer androidMediaPlayer = new AndroidMediaPlayer();
androidMediaPlayer.setSurface(surface);
long duration = androidMediaPlayer.getDuration();
try {
//设置资源
androidMediaPlayer.setDataSource("http://uvideo.spriteapp.cn/video/2019/0512/56488d0a-7465-11e9-b91b-1866daeb0df1_wpd.mp4");
//异步准备
androidMediaPlayer.prepareAsync();
//播放
androidMediaPlayer.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(IMediaPlayer iMediaPlayer) {
androidMediaPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}