【问题标题】:How to know which android devices support video playback?如何知道哪些安卓设备支持视频播放?
【发布时间】:2013-01-23 16:10:16
【问题描述】:

我制作了一个应用来在 Android 设备上查看 vine 视频。这些基本上是被加载到VideoView 中的 .mp4 视频。根据以下文档 (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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 在阅读了您的帖子并发现这不是 3+ android 版本之前/之后的问题后,我尝试采用不同的方法,最终解决问题的是将 .mp4 视频下载到设备,然后播放。所以,基本上从 videoView.setVideoURL 切换到 videoView.setVideoPath 解决了这个问题。
    猜你喜欢
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2018-01-18
    • 2014-01-26
    • 2018-10-06
    • 2011-03-07
    相关资源
    最近更新 更多