Ijkplayer Android介绍
Ijkplayer Android目录结构Ijkplayer Android可以将该工程导入android studio进行编译,当它下载好需要的资源文件(例如sdk build tool,gradle等)就可以进行编译了,该工程的目录结构如下图所示:链接库:ijkplayer-arm64,ijkplayer-armv5,ijkplayer-armv7a,ijkplayer-x86,ijkpla
Ijkplayer Android目录结构
Ijkplayer Android可以将该工程导入android studio进行编译,当它下载好需要的资源文件(例如sdk build tool,gradle等)就可以进行编译了,该工程的目录结构如下图所示:
链接库:
ijkplayer-arm64,ijkplayer-armv5,ijkplayer-armv7a,ijkplayer-x86,ijkplayer-x86_64是不同体系架构的动态链接库,在当前工程结构里面作为一个模块,如果不想做兼容多平台问题,可以删除其他目录结构,单独保留自己需要的平台目录。
IjkExoMediaPlayer
ijkplayer-exo,通过安装ijkplayer可以发现setting里面可以选择不同player来渲染多媒体显示,该模块下面就是一个MediaPlayer
ijkplayer 通用API
ijkplayer-java,这里面是通用的API接口,里面最主要的是IMediaPlayer,它也是用来渲染显示多媒体的,该模块的目录结构如下所示:
ijkplayer 实例
ijkplayer-sample是源代码中的实例,它的目录结构如下所示:
其中实现了类似于Android VideoView的IjkVideoView,我们也可以根据自己需求实现自己的VideoView,用来渲染显示多媒体。
ijkplayer使用
资源文件
在资源文件中添加IjkVideoView自定义控件,用来渲染显示多媒体。如下图所示:
<tv.danmaku.ijk.media.sample.widget.media.IjkVideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
</tv.danmaku.ijk.media.sample.widget.media.IjkVideoView>
Java代码调用
如果需要进行多媒体播放,其实和Android提供的多媒体播放api差不多,具体流程如下:
初始化
加载native底层库
IjkMediaPlayer.loadLibrariesOnce(null);
IjkMediaPlayer.native_profileBegin("libijkplayer.so");
设置播放uri
设置uri,可以是rtmp,rtsp,http等,native ffplay代码中会根据该uri匹配不同的流媒体协议,具体参考ffplay。
mVideoView.setVideoURI(mVideoUri);
开始播放
mVideoView.start();
停止播放
if (mBackPressed || !mVideoView.isBackgroundPlayEnabled()) {
mVideoView.stopPlayback();
mVideoView.release(true);
mVideoView.stopBackgroundPlay();
} else {
mVideoView.enterBackground();
}
IjkMediaPlayer.native_profileEnd();
总结
具体代码分析可以到git下载代码分析,如果需要体验,可以下载该demo(apk文件),具体流程分析可以参考ijkplayer阅读笔记。
更多推荐
所有评论(0)