在 native 代码中使用 mediaCodec 进行 android 视频播放

标签 android media

我正在尝试使用新的 API 媒体编解码器在 Android native 代码中播放视频。由于不可避免的原因,我不想走 mediaPlayer 方式。有人可以分享一些关于如何进行的代码 fragment 吗?提前致谢。

最佳答案

您原来的问题太笼统了。老实说,用 native 代码创建一个新的媒体播放器对您来说是一项艰巨的任务。

如果您只是在寻找一些能够更好地支持各种格式/编解码器(例如 VLC 播放器)的媒体播放器解决方案,您可以尝试 VLC lib,它是开源的,但仍处于测试版本。我尝试过VLC,但它确实存在一些崩溃问题或ANR问题,这是在整个框架内部的。

或者您可以尝试使用 Vitamio SDK,这是一个没有源代码的库。请通过以下链接查看:https://github.com/yixia/VitamioBundle下面是它的功能列表:

我已经尝试过这个解决方案,它非常稳定,在4.3上也有一些小问题,但仍然可以接受。所以我不会在这里发布任何垃圾邮件,只是从官方文档中复制:

Vitamio 是一个适用于 Android 和 iOS 的开放多媒体框架或库,具有完整且真正的硬件加速解码器和渲染器。 Vitamio 简单、干净且功能强大的 API 使其在 Android 和 iOS 多媒体应用程序开发中闻名并流行。 根据开发者的反馈,Vitamio已被全局超过1000个应用程序和1亿用户使用。

Vitamio 可以在 Android 和 iOS 上播放 720p/1080p 高清 mp4、mkv、m4v、mov、flv、avi、rmvb、rm、ts、tp 和许多其他视频格式。 Vitamio 支持几乎所有流行的流媒体协议(protocol),包括 HLS(m3u8)、MMS、RTSP、RTMP 和 HTTP。

网络协议(protocol)

音频和视频播放支持以下流媒体协议(protocol):

彩信 RTSP(RTP、SDP)、RTMP HTTP 渐进式流式传输 HLS - HTTP 实时流媒体 (M3U8) 是的,Vitamio 可以处理上述所有协议(protocol)中的点播和直播视频。

媒体格式

Vitamio 使用 FFmpeg 作为解复用器和主要解码器,除了 Android 平台内置的默认媒体格式之外,Vitamio 中还封装了许多音频和视频编解码器,下面列出了其中一些。

DivX/Xvid WMV FLV TS/TP RMVB MKV MOV M4V AVI MP4 3GP

字幕

Vitamio 支持多种外部和嵌入字幕格式的显示。

SubRip(.srt) Alpha 子站(.ssa)/高级 Alpha 子站(.ass) 萨米(.smi/.sami) MicroDVD(.sub/.txt) SubViewer2.0(.sub) MPL2(.mpl/.txt) Matroska (.mkv) 字幕轨道 更多功能

更多精彩功能

支持从小手机到大平板电脑的各种屏幕 多音轨支持 多字幕支持,包括外部和嵌入字幕 针对许多平台的处理器优化 流式传输时缓冲 可调纵横比 自动文本编码检测

关于在 native 代码中使用 mediaCodec 进行 android 视频播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20297822/

相关文章:

android - 在Android中选择同一布局中的EditText时如何关注Webview?

android - 在 webview 中看不到 onReceivedError

java - Gradle 重复条目

iphone - CSS 媒体查询不适用于 iPhone

html - 使用@media 更改宽度(最小宽度 :XXXXpx) Responsive ads

java - 使用元数据唯一标识文件

ios - 有什么办法知道是否通过 Apple Music 下载了歌曲?

远程服务器中文件的 MediaInfo DLL

android - 长时间后从后台恢复时应用程序崩溃

android - KITKAT中保存数据到/external sdcard/Android/data/<app package name>