HTML5 - изменение источника видео не работает в Safari - PullRequest
1 голос
/ 16 января 2012

У меня видео HTML5 меняется при нажатии на разные ссылки (см. Код ниже). Работает во всех браузерах, кроме Safari. Исходное видео воспроизводится во всех браузерах, но не переключение видео в Safari. Если я изменю так:

<script>
function loadAnotherVideo() {
    var video = document.getElementsByTagName('video')[0];
    video.src="HTML5 MOVREV.m4v";
    video.load(); // need this for the new video to load
}
function loadAnotherVideo2() {
    var video = document.getElementsByTagName('video')[0];
    video.src="HTML5 MOV.m4v";
    video.load(); // need this for the new video to load
}
</script>

Он работает только в Safari, так как его mp4, но не переключает видео свободно в то время как в Safari, что в любом случае означает, что это неправильно.

Возможно, это связано с приведенными ниже функциями, которые не видят mp4 в Safari.

КОД: (работает во всех браузерах, кроме Safari)

<div id="VIDEOONE"> <video controls="controls" width="852" height="479">
 <source src="HTML5 MOV.m4v" type="video/mp4">
 <source src="HTML5 MOV.theora.ogv" type="video/ogg">
 video not supported
</video>
<script>
function loadAnotherVideo() {
  var video = document.getElementsByTagName('video')[0];
  var sources = video.getElementsByTagName('source');
  sources[0].src = "HTML5 MOVREV.m4v";
  sources[1].src = "HTML5 MOVREV.theora.ogv";
  video.load(); // need this for the new video to load
}
function loadAnotherVideo2() {
  var video = document.getElementsByTagName('video')[0];
  var sources = video.getElementsByTagName('source');
  sources[0].src = "HTML5 MOV.m4v";
  sources[1].src = "HTML5 MOV.theora.ogv";
  video.load(); // need this for the new video to load
}
</script>
<input type="button" value="video two"
       onclick="loadAnotherVideo()">  

<input type="button" value="video one"
       onclick="loadAnotherVideo2()"></div>  

1 Ответ

0 голосов
/ 17 января 2012

работает во всех браузерах?AFAIK IE9 не может переключать видео с помощью функции src (), если у вас есть узлы SOURCE внутри видеоузла.

Кроме того, m4v не будет воспроизводиться в Firefox и Opera - если вы хотите переключать видео, из моего опытаразумно потерять узлы SOURCE и вместо этого использовать canPlayType () с самого начала -> даже для исходных видео.(имейте в виду, что Android 2.2 знает html5-видео, но не реализовал эту функцию -> вам придется реализовать его, если это устройство будет найдено через пользовательский агент, если оно вам подходит. Пример кода см. в mediaelement.js)

Вы не должны использовать пробелы в именах файлов, так как они могут также вызвать ошибки.Вы, вероятно, не сможете проверить свой плеер во всех распространенных браузерах и операционных системах -> Chrome / FF / [...] не одинаковы в Linux / Windows / Mac

, но не в последнюю очередьПочему вы используете M4V вместо MP4?M4V необходим только в том случае, если вы включаете в файл информацию о главах, которую html5-плеер не может прочитать в любом случае.M4V требуется только для iTunes-совместимых устройств вместе с информацией о главе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...