Я являюсь разработчиком мобильного веб-javascript, и мы обнаружили, что некоторые Android не будут воспроизводить видео в формате mp4, созданное в контейнере mp4, поэтому у нас была логика, указывающая на версии 3gp. Теперь новые устройства Android (Samsung Ace, Kindle Fire) не поддерживают контейнер 3GP.
Сейчас я изучаю использование метода Javascript DOM canPlayType (), у меня возникают проблемы с определением строк, которые туда входят. Я беру примеры из спецификации HTML5 W3C и других источников.
С помощью следующего кода (взятого из другого вопроса) я получаю смешанные результаты, потому что считаю, что я тестирую строку, которая может не соответствовать нашим файлам, созданным вручную / qt-faststart / ffmpeg.
Я получаю ложь на всех 3 на Samsung Vibrant, но он хорошо воспроизводит все видео.
var testEl = document.createElement( "video" ),
mpeg4, h264, webm;
if ( testEl.canPlayType ) {
// Check for MPEG-4 support
var typeStr = testEl.canPlayType( "video/mp4; codecs=\"mp4v.20.8\"" );
mpeg4 = typeStr !== "";
// Check for h264 support
typeStr = testEl.canPlayType( "video/mp4; codecs=\"avc1.42E01E\"" )
|| testEl.canPlayType( "video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"" )
h264 = typeStr !== "";
// Check for Webm support
typeStr = testEl.canPlayType( "video/webm; codecs=\"vp8, vorbis\"" );
webm = typeStr !== "";
}
alert("mpeg4 = "+mpeg4+"\nh264 = "+h264+"\nwebm = "+webm);