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);
    }

    @Override
    protected 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();

编译集成完毕

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExoPlayer是一个开源的媒体播放器,提供了丰富的功能和灵活的扩展性。其中,FFmpeg扩展ExoPlayer中的一个重要组件。 ExoPlayer的核心功能是播放各种媒体格式的音视频文件,但是它并不直接支持所有的媒体格式。这就是为什么需要FFmpeg扩展的原因。FFmpeg是一个广泛应用于音视频处理领域的开源工具,它提供了一套强大的功能,包括解码、编码、转码、过滤等。通过集成FFmpeg扩展ExoPlayer可以充分利用FFmpeg提供的功能来支持更多的媒体格式。 FFmpeg扩展使得ExoPlayer能够在不同的平台上运行,并能够处理各种常见或者特殊的音视频格式。它提供了跟踪最新FFmpeg版本的机制,保证ExoPlayer始终具备对新媒体格式的支持。同时,FFmpeg扩展还提供了配置和优化的选项,开发者可以根据自己的需求进行调整。 通过ExoPlayerFFmpeg扩展的结合,开发者可以快速实现一个功能强大、灵活可扩展的媒体播放器。无论是播放常见的MP3、MP4文件,还是处理特殊的FLAC、MKV等格式,ExoPlayer都能够应对自如。而且,由于ExoPlayerFFmpeg扩展是开源项目,开发者可以根据自己的需求进行二次开发,定制化自己的播放器,提供更好的用户体验。 总之,ExoPlayerFFmpeg扩展是它的一个重要组件,它为ExoPlayer提供了支持更多媒体格式的能力,使得开发者能够更加灵活地定制和扩展一个高性能的媒体播放器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值