首页 理论教育 基于Ijkplayer的视频播放器优化方案

基于Ijkplayer的视频播放器优化方案

时间:2023-06-27 理论教育 版权反馈
【摘要】:Ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放,这应该是目前github最火的开源视频播放器了。Ijkplayer是一个基于ffplay的轻量级An-droid/iOS视频播放器,实现了跨平台功能,API易于集成,编译配置可裁剪,方便控制安装包大小,并支持硬件加速解码,更加省电。Ijkplayer还提供Android平台下应用弹幕集成的解决方案,此方案已用于美拍和斗鱼App,目前Ijkplayer最新的版本是0.7.7。图8-17 Ijkplayer编译结果各目录的含义如下。

基于Ijkplayer的视频播放器优化方案

Ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放,这应该是目前github最火的开源视频播放器了。Ijkplayer源码官方下载地址:https://github.com/Bilibili/ijkplayer。Ijkplayer是一个基于ffplay的轻量级An-droid/iOS视频播放器,实现了跨平台功能,API易于集成,编译配置可裁剪,方便控制安装包大小,并支持硬件加速解码,更加省电。Ijkplayer还提供Android平台下应用弹幕集成的解决方案,此方案已用于美拍和斗鱼App,目前Ijkplayer最新的版本是0.7.7。

FFplay是一个使用了FFmpeg和SDL库的、简单可移植的媒体播放器,FFmpeg是全球领先的多媒体框架,能够解码、编码、转码、复用、解复用、流、过滤器和播放大部分的视频格式。它提供了录制、转换以及流化音视频的完整解决方案,包含了非常先进的音频/视频编解码库libavcodec。为了保证较高的可移植性和编解码质量,libavcodec中很多code都是从头开发的。

下载Ijkplayer源码后,需要进行编译,Ijkplayer的编译是在Ubuntu下实现的,具体实现过程如下。

(1)需要为Ubuntu安装homebrew、Git、yasm。

978-7-111-58810-8-Chapter08-90.jpg

978-7-111-58810-8-Chapter08-91.jpg

Ijkplayer编译后的结果如图8-17所示。

978-7-111-58810-8-Chapter08-92.jpg

图8-17 Ijkplayer编译结果

各目录的含义如下。

(1)ijkplayer-java:Ijkplayer的一些操作封装及定义。这里面是通用的API接口,其中最主要的是IMediaPlayer,用于渲染显示多媒体。

(2)ijkplayer-exo:Google的一个新的开源播放器ExoPlayer,在Demo中和Ijkplayer对比使用。通过安装Ijkplayer可以发现setting里可以选择不同player来渲染多媒体显示,该模块下面就是一个MediaPlayer。

(3)ijkplayer-example:测试程序。

(4)ijkplayer-{arch}:编译出来的各个版本的.so文件。

首先需要的是ijkplayer-{arch}、ijkplayer-Java两个库。ijkplayer-exo是Google提供的新的播放器,这里不需要使用。

下面是Android使用Ijkplayer实现播放器的实例,在Android2.3中创建应用项目:Ijk-playerExample。

(1)把ijkplayer-armv7a/src/main/libs中的文件复制到新工程app目录的libs中。(www.xing528.com)

(2)把ijkplayer-java/build/outputs/aar/ijkplayer-java-release.aar复制到新工程app目录的libs中。

(3)修改App中的build.gradle,主要设置.so及.aar的位置。

978-7-111-58810-8-Chapter08-93.jpg

(4)复制ijkplayer-example下面的tv.danmaku.ijk.media.example.widget.media到项目的源代码目录中,如图8-18所示。

978-7-111-58810-8-Chapter08-94.jpg

图8-18 拷贝ijkplayer-example的源代码到项目

(5)在AndroidManifest.xml中增加网络权限,代码如下。

978-7-111-58810-8-Chapter08-95.jpg

(6)主布局文件activitymain.xml的代码如下。

978-7-111-58810-8-Chapter08-96.jpg

(7)主Activity文件MainActivity.java用于实现对IjkVideoView的调用,代码如下。

978-7-111-58810-8-Chapter08-97.jpg

(8)项目运行结果如图8-19所示.

978-7-111-58810-8-Chapter08-98.jpg

图8-19 项目运行结果

上面展示的是Ijkplayer的最基本应用方法,Ijkplayer有丰富的播放器功能,可以基于Ijkplayer定制更高级的播放器。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈