2014-01-30 108 views
0

我想分享html5視頻使用Node.js.HTML5視頻播放設置後源

我有瀏覽器A與視頻網址和瀏覽器B沒有它。我使用web-sockets和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

嗨,布賴恩,謝謝你的回答。我無法得到它的作品。視頻在那裏,源被設置,但然後我得到:「未捕獲InvalidStateError:嘗試使用不是或不再可用的對象。」當我設置當前時間。 – user2361944

+0

除非'v.readyState> = 1',否則不能在持續時間內設置'currentTime',因此,您需要等待'loadedmetadata'或'durationchange'事件。 – brianchirls

+0

我發現主要問題,Websockets調用3次相同的功能,上次沒有發送數據,因此它將源設置爲空。 謝謝你的幫助。 – user2361944