在响应式网站上检测移动设备的最大视频分辨率支持

时间:2013-06-01 14:46:39

标签: android ios mobile video html5-video

正如标题所说,我正在寻找跨浏览器和大多数跨平台解决方案来显示不同大小分辨率的 。我的主要问题是,如果从标准/低清设备访问高分辨率视频,它将无法播放,因为原生视频应用程序无法处理它;对于具有标准或低显示分辨率的旧/低预算Android设备,这种情况最为正确。

我最好的猜测是根据设备宽度mediaquery过滤视频源文件,类似if width < 480 --> use low-res video,但这可能会排除有能力的高端设备,如iphone,galaxyS2 +等等。

最后我问是否有什么可以查询,例如“最大视频分辨率支持”或类似内容。我知道Android API中有一些东西,但我不知道它是否可以在这种情况下使用..

在我找到的一些链接下面作为参考:

http://www.genuitec.com/mobile/docs/encodingVideo/encodingVideo.html http://developer.android.com/guide/appendix/media-formats.html#recommendations http://developer.android.com/reference/android/media/CamcorderProfile.html

1 个答案:

答案 0 :(得分:2)

根据这篇文章,Android建议使用CamcorderProfile: http://developer.android.com/guide/appendix/media-formats.html#recommendations

他们说:

  

[...]设备的可用视频录制配置文件可用作媒体播放功能的代理。可以使用CamcorderProfile类检查这些配置文件,该类自API级别8开始提供。

我现在现在也使用CamcorderProfile来检测最大视频宽度和高度:

  CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
    Log.d(TAG, "Max Width: " + profile.videoFrameWidth);
    Log.d(TAG, "Max Height: " + profile.videoFrameHeight);

起初我不认为这是一个很好的解决方案,因为有些设备需要获得Android Manifest中使用相机权限的许可(对我来说这是HTC Evo 3D):

<uses-permission android:name="android.permission.CAMERA"/>

不幸的是我也认识到它无法正常工作,因为对于我的Nexus S,它说最大分辨率为480x720像素,但我可以播放来自http://source.android.com/compatibility/downloads.html#cts-media-files的1280x720视频 因此,zip存档中的文件夹和文件名是: 机器人-CTS-媒体1.0 \ bbb_short \ 1280×720 \ mp4_libx264_libfaac \ bbb_short.ffmpeg.1280x720.mp4.libx264_1750kbps_30fps.libfaac_stereo_192kbps_48000Hz.mp4

这种方法可能对你有所帮助。

但我会感谢任何其他更适合的方法!有谁知道另一种方式?