当前位置: 首页 > news >正文

exoplayer3 ffmpeg 扩展库编译 aar,导入集成

exoplayer3 ffmpeg 扩展库编译 aar,导入集成。

已经编译完成的aar:https://download.csdn.net/download/mhhyoucom/88086822

编译项目方法:
github下载项目:https://github.com/google/ExoPlayer

FFmpeg 模块提供 ,它使用 FFmpeg 进行解码 并且可以呈现以各种格式编码的音频。

要使用该模块,您需要克隆此 GitHub 项目并依赖其 本地模块。有关执行此操作的说明,请参阅顶级自述文件。该模块不是通过谷歌的Maven存储库提供的 。

此外,还需要手动构建 FFmpeg 库,以便 可以将 FFmpeg 二进制文件捆绑在 APK 中:

设置以下外壳变量:
cd “
FFMPEG_MODULE_PATH=“$(pwd)/extensions/ffmpeg/src/main”

下载安卓 NDK 并在 shell 变量中设置其位置。 此构建配置已在 NDK r21 上进行了测试。

NDK_PATH=“

设置主机平台(对于 Mac OS X,请使用“darwin-x86_64”):

HOST_PLATFORM=“linux-x86_64”

获取 FFmpeg 并签出相应的分支。我们不能保证 与所有版本的 FFmpeg 兼容。我们目前推荐版本 4.2:

cd “” &&
git clone git://source.ffmpeg.org/ffmpeg &&
cd ffmpeg &&
git checkout release/4.2 &&
FFMPEG_PATH=“$(pwd)”

配置要包含的解码器。请参阅支持的格式页面 可用解码器的详细信息,以及它们支持的格式。

ENABLED_DECODERS=(vorbis opus flac)
在 FFmpeg 模块目录中添加指向 FFmpeg 源代码的链接。jni
cd “KaTeX parse error: Expected 'EOF', got '&' at position 27: …ULE_PATH}/jni" &̲& \ ln -s "FFMPEG_PATH” ffmpeg

执行以构建 、 和 的 FFmpeg。如果需要构建,可以编辑脚本 不同的架构:build_ffmpeg.sharmeabi-v7aarm64-v8ax86x86_64

cd “KaTeX parse error: Expected 'EOF', got '&' at position 27: …ULE_PATH}/jni" &̲& \ ./build_ffm…{FFMPEG_MODULE_PATH}” “ N D K P A T H " " {NDK_PATH}" " NDKPATH""{HOST_PLATFORM}” “${ENABLED_DECODERS[@]}”

如何使用:

导入java类。

public class PluginRenderFactory extends DefaultRenderersFactory {/*** @param context A {@link Context}.*/public PluginRenderFactory(Context context) {super(context);}@Overrideprotected void buildAudioRenderers(Context context, int extensionRendererMode, MediaCodecSelector mediaCodecSelector, boolean enableDecoderFallback, AudioSink audioSink, Handler eventHandler, AudioRendererEventListener eventListener, ArrayList<Renderer> out) {out.add(new FfmpegAudioRenderer(eventHandler, eventListener, audioSink));super.buildAudioRenderers(context, extensionRendererMode, mediaCodecSelector, enableDecoderFallback, audioSink, eventHandler, eventListener, out);}}

exoplayer初始化时候设置进入:

DefaultRenderersFactory renderersFactory = new PluginRenderFactory(context).setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON);mPlayer = new ExoPlayer.Builder(context).setRenderersFactory(renderersFactory).build();

编译集成完毕

http://www.lryc.cn/news/100102.html

相关文章:

  • Shell免交互
  • 设计模式之四:工厂模式
  • 斩获CVPR 2023竞赛2项冠军|美团街景理解中视觉分割技术的探索与应用
  • UE4/5C++多线程插件制作(十五、将模板统一,修改统一后的其他类,修改继承,修改返回类型等)
  • K8S系统监控:使用Metrics Server和Prometheus
  • 数据结构基础之排序算法
  • Spark(37):Streaming DataFrame 和 Streaming DataSet 创建
  • SpringBoot集成Thymeleaf
  • 算法练习(2):牛客在线编程03 二叉树
  • 回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测
  • Linux 系列 常见 快捷键总结
  • OA系统构建排座
  • 微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局
  • 【C++】总结2
  • vue2项目中使用svg图标
  • 阿里云盘自动每日签到无需部署无需服务器(仅限学习交流使用)
  • Blazor前后端框架Known-V1.2.7
  • 工业边缘计算为什么?
  • Training-Time-Friendly Network for Real-Time Object Detection 论文学习
  • HTTP改HTTPS
  • 网络层中一些零碎且易忘的知识点
  • 【RabbitMQ】之高可用集群搭建
  • 【node.js】01-fs读写文件内容
  • GitHub仓库如何使用
  • 雪花算法,在分布式环境下实现高效的ID生成
  • 使用css 动画实现,水波纹的效果
  • Unity光照相关知识和实践 (烘焙光照,环境光设置,全局光照)
  • 【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
  • Android Unit Test
  • docker更新jenkins