6

正如标题所说,我正在寻找用于显示不同尺寸分辨率的html5 视频的跨浏览器和跨平台解决方案。我的主要问题是,如果从标准/低清晰度设备访问高分辨率视频,它将不会播放,因为本机视频应用程序无法处理它;在具有标准或低显示分辨率的较旧/低预算的 android 设备上,这主要是正确的。

我最好的猜测是根据设备宽度媒体查询过滤视频源文件,类似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/参考/android/media/CamcorderProfile.html

4

1 回答 1

2

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

他们说:

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

我现在也使用 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播放 1280x720 视频#cts-media-files 相应地,zip 存档中的文件夹和文件名是:android-cts-media-1.0\bbb_short\1280x720\mp4_libx264_libfaac\bbb_short.ffmpeg.1280x720.mp4.libx264_1750kbps_30fps.libfaac_stereo_192kbps_48000Hz.mp4

这个方法可能对你有帮助。

但我将不胜感激任何其他更适合的方法!有谁知道另一种方式?

于 2013-06-05T13:46:47.563 回答