gpt4 book ai didi

android - MXPlayer 和 MoboPlayer 等 Media Player Android 应用程序如何播放不受支持的文件格式(如 MKV)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:05 24 4
gpt4 key购买 nike

默认情况下,Android 不支持许多媒体文件格式(如 .mkv 等文件)。但是像 MXPlayer 和 MoboPlayer 这样的播放器可以让你播放这样的文件。这些应用程序如何工作?是否有任何编程教程或文章解释它是如何完成的?

最佳答案

Android 默认不支持所有媒体格式。因此,为了支持不受支持的格式,像 MoboPlayer 这样的应用程序通过 JNI 使用 Java 和 native 代码的组合来执行标准的媒体播放器任务。

要了解更多信息,让我们看看媒体播放器如何播放媒体文件,以及 MoboPlayer 如何执行这些操作,就像 Android 中的应用程序一样。

媒体播放器的典型任务

播放器需要执行以下任务 (a) 解复用文件格式并提取视频/音频 (b) 解码视频和音频 (c) 显示视频并播放音频。让我们考虑一下在像播放器这样的 MoboPlayer 的情况下如何处理这三个区域。

文件格式解复用

默认情况下,Android 不支持所有文件格式容器。例如,不支持 ASF(WMV 文件的文件格式)。因此,玩家需要拥有自己的分路器来完成这项工作。 libavformat(由 FFMPEG 使用)是领先的开源多路分解库。

视频/音频解码

libavcodec(由 FFMPEG 使用)是一个领先的开源解码器库,可以解码解复用流并生成未压缩的原始输出帧。因此它经常被像 MoboPlayer 这样的播放器使用。

视频展示

显示视频有两个选项。播放器使用 SurfaceView 缓冲区或 OpenGL 加速缓冲区。 Android 将 java Surface 对象(底层 Surface Flinger 对象的抽象)转换为名为 NativeWindow 的内部 native 对象,然后 native 代码可以访问该对象。

从 ICS (Android 4.0) 开始,Android 也提供对 OpenGL 加速缓冲区(SurfaceTexureTextureView)的访问。这些也可用于显示视频。

音频播放

播放器可以直接与Java层提供的AudioTrack对象交互,播放解码后的音频样本。

关于android - MXPlayer 和 MoboPlayer 等 Media Player Android 应用程序如何播放不受支持的文件格式(如 MKV)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com