admin管理员组文章数量:1794759
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是Bilibili公司(简称B站)基于FFmpeg3.4研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。
之前的文章《Linux编译ijkplayer的Android平台so库》介绍了如何编译获得App工程所需ijkplayer的so文件,接下来还要把官方的案例工程导入到新版的Android Studio,才能开展后续的App调试和开发工作。 这里以Android Studio Dolphin(小海豚版本)为例,介绍如何在App工程中导入并使用ijkplayer库,详细的操作步骤如下。
一、修改案例工程的Gradle版本
打开案例工程的gradle/wrapper/gradle-wrapper.properties,把下面这行配置
代码语言:javascript代码运行次数:0运行复制distributionUrl=https\://services.gradle/distributions/gradle-2.14.1-all.zip
改为下面这行配置
代码语言:javascript代码运行次数:0运行复制distributionUrl=https\://services.gradle/distributions/gradle-5.4.1-bin.zip
也就是把Gradle版本版本从2.14.1升级到5.4.1。
二、修改项目级别的build.gradle
打开项目级别的build.gradle,依次完成以下三处修改。 1、把下面这行jcenter配置
代码语言:javascript代码运行次数:0运行复制jcenter()
替换为下列的仓库配置
代码语言:javascript代码运行次数:0运行复制gradlePluginPortal()
google()
mavenCentral()
// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件
maven { url '' }
maven { url ''}
maven { url ''}
maven { url ''}
maven { url '' }
2、把下面几行的Gradle版本信息
代码语言:javascript代码运行次数:0运行复制classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
替换为下面的Gradle版本信息
代码语言:javascript代码运行次数:0运行复制classpath 'com.android.tools.build:gradle:3.2.0'
3、把下面几行的SDK版本信息
代码语言:javascript代码运行次数:0运行复制compileSdkVersion = 25
buildToolsVersion = "25.0.3"
targetSdkVersion = 25
替换为下面的SDK版本信息
代码语言:javascript代码运行次数:0运行复制compileSdkVersion = 28
buildToolsVersion = "28.0.3"
targetSdkVersion = 28
三、修改模块级别的build.gradle
打开各模块的build.gradle,依次完成以下三处修改。 1、把各模块build.gradle里面所有的compile替换为implementation 2、把各模块build.gradle里面所有的“minSdkVersion 9”替换为“minSdkVersion 21” 3、单独打开ijkplayer-example模块的build.gradle,先把productFlavors和几行all32Compile与all64Compile统统注释掉,再把下面的导包配置
代码语言:javascript代码运行次数:0运行复制compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
compile 'com.android.support:support-annotations:23.0.1'
替换为下面的导包配置,也就是把support库升级到28.0.0版本。
代码语言:javascript代码运行次数:0运行复制implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:preference-v7:28.0.0'
implementation 'com.android.support:support-annotations:28.0.0'
四、导入编译好的so文件
把根据《Linux编译ijkplayer的Android平台so库》编译出来的三个so文件放到ijkplayer-example模块的src/main/jniLibs/arm64-v8a目录下,这样Android Studio会在编译时自动加载这里的so文件。
五、添加直播链接的播放代码
打开ijkplayer-example模块的FileExplorerActivity.java,在onCreate方法末尾补充下面的播放代码。
代码语言:javascript代码运行次数:0运行复制final Context context = this;
FrameLayout fr_body = findViewById(R.id.body);
LinearLayout ll_body = new LinearLayout(context);
ll_body.setOrientation(LinearLayout.VERTICAL);
fr_body.addView(ll_body);
final EditText et_url = new EditText(context);
et_url.setText(":8080/live/test/hls.m3u8");
ll_body.addView(et_url);
Button btn_go = new Button(context);
btn_go.setText("开始播放");
btn_go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
VideoActivity.intentTo(context, et_url.getText().toString(), "测试视频");
}
});
ll_body.addView(btn_go);
以上五个步骤的修改之后,编译运行ijkplayer-example模块的App工程,在真机上看到的ijkplayer播放界面如下图所示。
可见通过ijkplayer成功在案例App上观看网络直播地址。
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
本文标签: FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
版权声明:本文标题:FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754612875a1704384.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论