本项目由 RTE 开发者社区 x 小红书 联合运营

播映器最初出现在 19 世纪,其时主要用于播映音频,例如经过留声机播映唱片。

随着技术的进步,音频播映器不断改进,质量越来越好,体积也越来越小。到了今天,经过手机或网络,人们能够随时随地播映音频和视频。

优秀的播映器有几个特性:需求供给强壮、可扩展的功用,流通的播映作用,顺畅的用户体会,兼容干流渠道,资源占用小,安全性高。而市面上大多数播映器在兼容性、功用、性能、可定制性等方面还有必定的优化空间,这也是许多开发者/公司挑选自主开发播映器的原因之一。

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~

根据此,小红书自主研发了一款跨渠道播映器 ——REDPlayer。不同于行业其他播映器,REDPlayer 具有结构简单、耦合度低、功用边界明晰等特色,供给了多种接入方法,技术人员可根据需求灵敏挑选,既可快速集成 SDK 运用,也可根据源码进行定制开发。

REDPlayer 开源地址:github.com/RTE-Dev/RED…

**划重点:**AndroidiOS、HarmonyOS 等渠道通通支撑!如 HLS、MP4、FLV 等多种协议和格局也都支撑~

关于 REDPlayer

REDPlayer 的宗旨是让开发者能够快速明晰的了解播映器的根本结构,并可根据个人需求进行简单扩展,满意不同用户的多样需求,可作为学生学习的基础工具,也可作为企业的商用渠道。

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~

(REDPlayer 架构图)

REDPlayer 支撑点播、直播场景下的多种协议和格局(如 HLS、MP4、FLV 等),并可二次扩展更多协议(如 RTC 等)。每个模块均是解耦的,开发者能够根据需求挂载自定义模块,如自研解码器、渲染器等。

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~

添加小帮手微信,补白 REDPlayer 进群和作者沟通工具运用与开发的日常

功用亮点

在过去,由于代码质量、文档等问题,播映器的二次开发和定制化很困难。REDPlayer 兼容多渠道,开发者现在能够直接集成 REDPlayer,提高开发功率,节省开发时刻,让咱们更加专心于事务逻辑的开发。此外,REDPlayer 架构明晰、扩展性好,这为二次开发供给了便当,能够根据实践事务需求定制播映器的功用,提升用户体会。

功用支撑全面,下降开发本钱:

  • REDPlayer 一起支撑多端(如:Android、iOS、HarmonyOS等)点播、直播下的多种协议和格局(如:HLS、MP4、FLV 等);
  • 支撑预载、边下边播等功用,削减等待时刻,提升播映流通性,给用户更好的观看体会;
  • 挑选性支撑 HDR、超分等才能;

便当的二次开发:

  • 架构明晰、结构简单,各模块耦合度低且可插拔、拓展性较好,能满意不同包体积要求下的事务运用;

低本钱:

  • 内存占用较小、接入本钱较低,可一起满意不同的场景运用(如:课堂学习、企业商用等);

用户自主性高:

  • 可挑选直接根据 Interface 快速接入 SDK 运用、也能够挑选根据 REDPlayer 代码做二次开发。开发者们能够根据自身需求挑选。

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~
RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~
RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~

目前 REDPlayer 开源的功用支撑用于创立更复杂的场景,例如在播映一个视频的过程中,用户能够经过拖动进度条进行实时预览,或在观看过程中一起输入文字构成弹幕等,以丰富整个互动场景的体会。甚至,能够经过 REDPlayer,实现将抠图后的人像与视频画面共享叠加在一起的新视频画面。

REDPlayer 集成与运用

那么怎么开端集成 REDPlayer 呢?REDPlayer 支撑两种方式的接入方法,即直接 SDK 接入和代码接入,下面将针对这两种方法进行逐个阐明。

1、直接 SDK 接入

REDPlayer 既支撑单一 URL 的输入,也支撑多 URL 的方法(JSON 方法)输入,运用者可根据自己的需求灵敏挑选。

详细过程如下:

过程 1:

IMediaPlayer mMediaPlayer = new RedMediaPlayer(); //创立播映器、初始化

过程 2:

mMediaPlayer.setDataSource(mAppContext, url); //设置url

过程 3:

mMediaPlayer.setEnableMediaCodec(true); //装备播映参数 mMediaPlayer.setVideoCacheDir(cacheDir);
mMediaPlayer.setLoop(true);
...

过程 4:

mMediaPlayer.prepareAsync(); //prepare

过程 5:

mMediaPlayer.start(); //开端播映,prepared状况后调用
至此,视频现已正常播起来了,接下来用户能够根据需求调用不同的接口(详细可见 INTERFACE 介绍)获取对应的信息或做对应的动作,如:
void pause(); //暂停播映
void stop(); //停止播映
void reset(); //重置播映
void release(); //退出播映
long getCurrentPosition(); //获取播映方位
long getDuration(); //获取视频时长
float getSpeed(); //获取播映速度

2、C 代码接入

该模块可根据上述架构图中介绍,用户挑选性地接入或替换,在此暂不做详细阐明,详细可见开源工程(github.com/RTE-Dev/Red…

写在最后

相信长时间的价值,REDPlayer 将采取分步开源、逐渐演进的方法落地。因此,咱们在 2024 年 1 月进行了第一波代码的开源:1、播映中间层代码开源(含:实例管理、接口调用等),2、REDPlayer 以 SDK 的方式开源。

未来,REDPlayer 也将持续保护迭代。二期,咱们将陆续引进 OpenCore 中心模块的自定义开发和支撑鸿蒙系统设备运用等功用,开源 OpenCore 模块代码、鸿蒙版块,进一步提升 REDPlayer 相关才能和开发者体会。

REDPlayer 开源地址:github.com/RTE-Dev/RED…

3 月 7 日晚间的 Dev Talk 直播中, 咱们邀请了三位深耕音视频范畴及播映器的大佬,咱们能够来与 REDPlayer 的作者一起沟通互动哦!

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~

添加小帮手微信,补白 REDPlayer 进群和作者沟通工具运用与开发的日常

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播映器~