1.引入库
//必须
implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
//可选
//implementation 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
//implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
//implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
//implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
2.创建布局文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:layout_width="500dp"
android:layout_height="500dp"
android:background="@color/black">
<SurfaceView
android:id="@+id/surface_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
</FrameLayout>
</FrameLayout>
3.创建IjkMediaPlayer编定SurfaceView然后播放
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
String url = "http://vfx.mtime.cn/Video/2019/03/09/mp4/190309153658147087.mp4";
private SurfaceView mSurfaceView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IjkMediaPlayer player = new IjkMediaPlayer();
mSurfaceView = findViewById(R.id.surface_view);
mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(@NonNull SurfaceHolder holder) {
player.setDisplay(holder);
Log.d(TAG, "surfaceCreated: ");
}
@Override
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
Log.d(TAG, "surfaceChanged: ");
}
@Override
public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
Log.d(TAG, "surfaceDestroyed: ");
}
});
try {
player.setDataSource(url);
player.prepareAsync();
player.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
4.在清单文件中声明相关权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
总结:这是一个最简单的
IjkPlayer的入门使用。