Ответ 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
Возможно, этот метод поможет вам.
Но я был бы признателен за любой другой способ, который лучше подходит! Кто-нибудь знает другой способ?