html5 Видео не воспроизводится на iPad
У меня есть видео тег, который отлично работает в Safari, Chrome, но не на iPad/iPhone. Что я делаю не так?
<a onclick="showVideoPlayer('http://www.mywebsite.com/videos/a video file.m4v')" id="video1" href="#">Play video</a>
JS код
function showVideoPlayer(videoSrc, showDownloadLink){
alert(videoSrc);
if(!videoSrc)
return;
$('div#overlay').show();
var $videoPlaceHolder = $('div#video-placeholder');
$videoPlaceHolder.show();
var $video = $videoPlaceHolder.find('video');
var winWidth = $(window).width() - 80;
var winHeight = $(window).height() - 120;
$video.attr('src', videoSrc);
$video.attr('width', winWidth + 'px');
$video.attr('height', winHeight + 'px');
$videoPlaceHolder.append($video);
if(showDownloadLink){
$('#video-placeholder .down').show();
}
}
1 ответ
iOS печально известна своей чрезмерной суетой при воспроизведении видео. Вот несколько вещей, чтобы проверить:
- Видео, закодированное с использованием базового профиля H.264 (другие профили не гарантированно воспроизводятся под iOS)
- Видео файл обслуживается с соответствующим заголовком типа контента (
binary/octet-stream
не будет работать на iOS) - Если вы в конечном итоге с помощью
<source type="foo" src="bar" />
теги в вашем<video />
, убедитесь, что значениеtype
Атрибут точно соответствуетcontent-type
заголовок, предоставляемый сервером - это регистр символов - Сервер, доставляющий видеофайл, должен поддерживать запросы диапазона байтов - в этом случае консоль разработчика iOS Safari должна отображать жалобы в этом направлении.
Это самые распространенные ошибки, с которыми я сталкивался (я работаю на онлайн-видео платформе) - надеюсь, ваша проблема будет так же проста, как выяснение того, какое требование вы пропускаете.