Ijkplayer Android介绍

来源:互联网 发布:淘宝网毛衣货源 编辑:程序博客网 时间:2024/06/05 19:53

Ijkplayer Android目录结构

Ijkplayer Android可以将该工程导入android studio进行编译,当它下载好需要的资源文件(例如sdk build tool,gradle等)就可以进行编译了,该工程的目录结构如下图所示: 
ijkplayer目录接口

链接库:

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-java目录接口

ijkplayer 实例

ijkplayer-sample是源代码中的实例,它的目录结构如下所示: 
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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Java代码调用

如果需要进行多媒体播放,其实和Android提供的多媒体播放api差不多,具体流程如下:

初始化

加载native底层库

IjkMediaPlayer.loadLibrariesOnce(null);IjkMediaPlayer.native_profileBegin("libijkplayer.so");
  • 1
  • 2

设置播放uri

设置uri,可以是rtmp,rtsp,http等,native ffplay代码中会根据该uri匹配不同的流媒体协议,具体参考ffplay。

mVideoView.setVideoURI(mVideoUri);
  • 1

开始播放

mVideoView.start();
  • 1

停止播放

if (mBackPressed || !mVideoView.isBackgroundPlayEnabled()) {    mVideoView.stopPlayback();    mVideoView.release(true);    mVideoView.stopBackgroundPlay();  } else {      mVideoView.enterBackground();}IjkMediaPlayer.native_profileEnd();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

总结

具体代码分析可以到git下载代码分析,如果需要体验,可以下载该demo(apk文件),具体流程分析可以参考ijkplayer阅读笔记。

0 0
原创粉丝点击