1

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

我已经android:minSdkVersion="11"在清单文件中添加了一个从下载应用程序中过滤掉较旧的 Android 版本,但我仍然收到运行较新版本 Android(例如 4.1、4.2)的用户的反馈,他们抱怨“视频不能被播放”错误信息。

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

有没有办法检查设备播放视频的能力,或者至少让模拟器播放视频,这样我才能正确解决这个问题?

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

4

1 回答 1

1

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

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

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

于 2013-02-08T00:17:09.183 回答