Обнаружение максимальной поддержки разрешения видео для мобильного устройства на быстродействующем веб-сайте

Как говорится в названии, я ищу кросс-браузер и, в основном, кросс-платформенное решение для отображения видео html5 с разным размером.. Моя основная проблема заключается в том, что при доступе к видео высокого разрешения со стандартного/низкоуровневого устройства он не будет воспроизводиться, поскольку собственное видеоприложение не сможет его обработать; это в основном относится к старым/низкобюджетным устройствам Android, которые имеют стандартное или низкое разрешение дисплея.

Мое лучшее предположение заключалось в том, чтобы отфильтровать исходный видеофайл на основе медиатекста ширины устройства с чем-то вроде if width < 480 --> use low-res video, но это, вероятно, исключает возможности высокопроизводительных устройств, таких как iphones, 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

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 он говорит, что разрешение maxmium будет 480x720 пикселей, но я смог воспроизвести видео 1280x720 от http://source.android.com/compatibility/downloads.html#cts-media-files Более того, папка и имя файла в архиве zip были: Android-КТС-медиа-1,0\bbb_short\1280x720\mp4_libx264_libfaac\bbb_short.ffmpeg.1280x720.mp4.libx264_1750kbps_30fps.libfaac_stereo_192kbps_48000Hz.mp4

Возможно, этот метод поможет вам.

Но я был бы признателен за любой другой способ, который лучше подходит! Кто-нибудь знает другой способ?