2014-01-30 89 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