android - 如何知道哪些android设备支持视频播放?

标签 android android-emulator video-streaming android-videoview

我制作了一个应用程序,可以在 Android 设备上观看 vine 视频。这些基本上是加载到 VideoView 中的 .mp4 视频。根据以下文档 (http://developer.android.com/guide/appendix/media-formats.html),Android 版本 3+ 设备支持 mp4 视频播放。

我已经在 list 文件中添加了一个 android:minSdkVersion="11" 以过滤掉较旧的 android 版本以阻止下载应用程序,但我仍然从运行较新版本的用户那里得到反馈提示收到“无法播放视频”错误消息的 Android(例如 4.1、4.2)。

由于没有办法(据我所知,如果我错了请纠正我)使用模拟器测试视频播放,我真的不知道发生了什么。

有什么方法可以检查设备是否能够播放视频或至少让模拟器播放视频,以便我可以正确解决这个问题?

PD。对于那些感兴趣的人,这是我在 Google Play 中的应用程序的链接。如您所见,我被负面评论压垮了:https://play.google.com/store/apps/details?id=com.thirtymatches.vineflow

最佳答案

如果您仔细查看 Google 兼容性矩阵,您会发现从 Android 3.0 版本开始支持 MP4/H264编码播放 MP4/H.264 已被所有回溯到 Android 1.0 的 Android 设备所支持,因此您无需将可用性限制为较新版本的 Android(除非您有其他 API 兼容性需求)。

通过 VideoView,所有这些设备上的视频播放都是使用手机芯片组提供的硬件解码器完成的。因此,为了保证兼容性,必须将视频编码为最低公分母。 Google 在您链接的页面底部提供了“视频编码建议”; I also wrote an answer描述我们如何转码为可在所有 Android 设备上播放的 MP4/H264 格式。

不知道 Vine 对他们的视频剪辑做了什么,可能是因为视频并非全部使用统一的编码器参数进行编码。他们可能会直接从手机中取出视频并进行流式传输,而无需任何额外的服务器端处理以确保广泛的兼容性;我不知道。如果是这种情况,您可能会发现开发一个可以显示内容的 Android 应用程序具有挑战性 a) 实现您自己的软件编解码器(就像 RockPlayer、MX Player 或 VLC 等应用程序所做的那样)或 b) 在服务器上转码视频(这可能会与 Vine 的服务条款发生冲突。

关于android - 如何知道哪些android设备支持视频播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763335/

相关文章:

video-streaming - rtsp 从桌面服务器流式传输到我的客户端

android - 实现推送通知firebase

java - 在不使用 Runnable 和 Timer 类的情况下定期调用方法

android - 无法在 gitlab-ci 中启动 Android 模拟器

安卓模拟器屏幕尺寸

android - 在同一台 PC 上运行英特尔 HAXM 的 Android 模拟器的最大数量是多少?

timer - Wowza 服务器模块 - 视频聊天的定时器/倒计时

javascript - 在 Nativescript ListView 中显示项目

java - 有多个好的构造函数,Room 会选择无参数构造函数

video-streaming - openRTSP 分段录制