FFmpeg开发笔记(六十四)使用国产的RedPlayer播放器观看网络视频

RedPlayer是小红书基于FFmpeg4.3研发并开源的国产播放器,它可运行于Android和iOS系统,既支持播放本地视频文件,也支持播放网络上的流媒体链接。有关FFmpeg在Android平台的集成说明参见《FFmpeg开发实战:从零基础到短视频上线》一书的“第12章 FFmpeg的移动开发”。
之前的文章《使用国产的ijkplayer播放器观看网络视频》介绍了另一款由B站研发的国产播放器ijkplayer,可惜ijkplayer已经多年未更新源码,使得应用在App项目中颇为不便。如今小红书的RedPlayer横空出世,大有接过ijkplayer的势头,方便开发者定制包含最新特性的移动播放器。
这里以Android Studio Dolphin(小海豚版本)为例,介绍如何在App工程中运行RedPlayer,详细的操作步骤如下。

一、下载RedPlayer的源码

RedPlayer的源码托管地址为https://github.com/RTE-Dev/REDPlayer,国内的镜像网站有两个,一个是https://gitee.com/rte-dev/RedPlayer,另一个是https://gitcode.com/gh_mirrors/re/RedPlayer。
可以在托管网站上下载RedPlayer的最新源码,也可以下载2.0版本的源码。

二、导入RedPlayer的源码

解压下载后的RedPlayer源码,找到source目录,下面又有三个目录。分别是android、ios和redplayercore。其中android为RedPlayer适配Android系统的源码,ios为RedPlayer适配iOS系统的源码,redplayercore为RedPlayer的播放器核心源码,前两个源码都依赖于redplayercore。
打开小海豚版本的Android Studio后,按照项目方式导入上面解压得到的android目录,Android Studio就加载RedPlayer工程,并自动下载相关的依赖包。有关Android Studio导入App项目的操作步骤参见《Android Studio开发实战:从零基础到App上线(第3版)》一书的“1.3.2 导入已有的工程”。
成功导入RedPlayer工程之后,发现该工程有三个App模块,介绍如下:
app:这是包含交互界面的播放器演示模块,引用了小红书自研播放器相关库OpenRedPlayerCore和OpenRedPreload,支持播放本地视频文件、网络视频文件、在线直播链接,以及小红书提供的在线播放案例和画中画播放案例。
OpenRedPlayerCore:这是RedPlayer播放器的核心模块,其中的C/C++代码集成了FFmpeg、mediandk、SoundTouch等第三方库。
OpenRedPreload:这是播放器的预加载模块,主要提供网络视频流在下载过程中的缓存机制。

三、编译RedPlayer

依次选择Android Studio的顶部菜单:Build→Make Project,尝试编译RedPlayer工程。不料Android Studio提示报错“Could not find com.github.tbruyelle:rxpermissions:0.12”,原来RedPlayer用到了第三方的rxpermissions。
不管怎么调整build.gradle配置,都无法下载权限库rxpermissions。可能rxpermissions许久未更新,被仓库除名了吧。只能删除build.gradle里的rxpermissions导包语句,同时去掉App工程中涉及到RxPermissions代码。
为了补偿rxpermissions的动态授权校验功能,需要开发者自行添加相关的运行时权限验证逻辑,具体代码参见《Android Studio开发实战:从零基础到App上线(第3版)》一书的“6.3.3  运行时动态申请权限”。

四、运行RedPlayer

解决了rxpermissions的导包问题之后,把RedPlayer安装到手机上,启动App的初始界面如下图所示:

点击首页列表的第一项“URL/JSON”,在新页面填入一个网络视频地址,再点击右下角的Play按钮,跳到播放页面如下图所示。

可见RedPlayer能够正常播放网络视频。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

本系列的FFmpeg进阶文章目录为《FFmpeg开发笔记全目录(FFmpeg开发实战详解,含直播系统的搭建过程)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值