我正在尝试使用新的 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/