2010-11-22 7 views
2

В chrome (7.0.517.44) Я использую тег <video>, и звук будет воспроизводиться только видео воспроизводится.Звук воспроизводится в другое время, когда видео воспроизводится в Chrome

Почему звук не всегда воспроизводится вместе с видео?

В странице:

<div id="VideoShow"> 
    <video id="VideoPlay" width=800 height=600></video> 
</div> 

По щелчку этот JS выполняется.

function playVideo(videoName) { 
    $("#VideoShow").fadeIn(300); 
    var Vid = document.getElementsByTagName('video')[0]; 
    Vid.src = videoName; 
    Vid.play(); 
    Vid.addEventListener('ended', function(e) { 
     closeVideo(); 
    }, false); 
} 

function closeVideo() { 
    var Vid = document.getElementsByTagName('video')[0]; 
    Vid.removeEventListener('ended', arguments.callee, false); 
    Vid.pause(); 
    $("#VideoShow").fadeOut(300); 
} 

ответ

1

У меня была очень похожая проблема с тегом <audio>. Хотя я не смог определить фактическую причину, мне удалось решить проблему, удалив старый элемент <audio> из DOM и заменив его на идентичный элемент непосредственно перед каждым вызовом для воспроизведения().

+0

Кажется, что воссоздание тега видео каждый раз делало трюк. – corymathews 2010-11-30 21:51:27

0

Я продолжаю находить несоответствия в поведении этих элементов.

Вы пытались подождать до запуска метода .play() до тех пор, пока не получите событие canplay10 или canplaythrough?

Возможно стоит сделать снимок.