2014-01-30 2 views
0

Я пытаюсь обмениваться видео html5 с помощью Node.js.Воспроизведение видео в формате HTML5 после установки источника

У меня есть браузер A с видеороликом и браузером B без него. Я соединяю как с помощью web-сокетов, так и с node.js. До сих пор я получаю и устанавливаю источник видео с A на B., но когда я пытаюсь воспроизвести его в B с помощью новой команды, не работает.

Это похоже на то, что видео не загружено. Поэтому я использую следующий код, чтобы не получить ошибку:

$('#v').on('loadeddata', function() { 
    if (v.readyState != 0) { 
     $("#v").get(0).play(); 
    } else { 
     $('#v').on('loadedmetadata', function() { 
     $("#v").get(0).play(); 
     }); 
    }   
}); 

Я установить источник на странице загрузки, а затем я нажимаю играть на А и отправить заказ в B. Однако он начинает играть, когда произойдет событие.

Я использовал JQuery и Javascript функцию загрузки пытается решить ее, но я не мог получить это работает:

$("#v").get(0).load(); 

and 

var v = document.getElementById('v'); 
v.load(); 

Любая идея? как реально загружать видеоролики, которые вы устанавливаете источником?

Я использую Chrome (V.32) и Firefox (v.26).

ответ

0

В зависимости от того, как вы установили элемент видео, вы можете не принимать событие loadeddata некоторое время, и в этом случае он не будет воспроизводиться сразу, если когда-либо. К счастью, вам не нужно ждать, пока какие-либо из этих событий начнут воспроизводиться.

Как только вы установили исходный URL-адрес, позвоните load, а затем play. Это должно заставить браузер загружать и воспроизводить его, когда он готов (если вы не на iPad, и в этом случае пользователю нужно будет нажать кнопку воспроизведения).

+0

Привет, Брайан, спасибо за ваш ответ. Я не мог заставить его работать. видео есть, источник установлен, но затем я получаю: «Uncaught InvalidStateError: была сделана попытка использовать объект, который не является или больше не может использоваться». когда я устанавливаю currentTime. – user2361944

+0

Вы не можете установить 'currentTime' до тех пор, пока у вас не будет длительности, поэтому для этого вам нужно подождать событие' loadedmetadata' или 'durationchange', если только' v.readyState> = 1'. – brianchirls

+0

Я нашел основную проблему, Websockets вызывает 3 раза одну и ту же функцию и в последний раз не отправляет данные, поэтому она устанавливает источник в пустую. Благодарим за помощь. – user2361944

Смежные вопросы