for*_*sto 15 html javascript video jquery html5
我认为巨大的WTF是我正在制作的半复杂网页应用程序中隐藏的一个错误,但我已经把它简化为最简单的代码,并且它仍然可以在Firefox,Chrome和Safari中复制,不可预测但超过1/2的时间.
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
$("#player").append(v);
Run Code Online (Sandbox Code Playgroud)
这是一个屏幕截图,可能表明我并不是完全疯狂:http://www.youtube.com/watch?v = hLYrakKagRY
用.html()而不是制作元素时似乎没有发生.append(),所以这是我唯一的线索:http://jsfiddle.net/cDpV9/6/
$("#player").html("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-piano-360.webm' autobuffer='auto' preload autoplay controls></video>");
Run Code Online (Sandbox Code Playgroud)
我在OS X 10.6.7上.
我想我拥有它.即使只是创建JQuery对象而不将其添加到页面也会导致幽灵玩家玩:http://jsfiddle.net/cDpV9/8/
var v = $("<video id='v' src='http://ia600401.us.archive.org/18/items/ForrestPlaysTaik/forresto-plays-taik-banjo-360.webm' autobuffer='auto' preload autoplay controls></video>");
现在我可以通过使用来解决这个问题.html().我将向JQuery 报告此问题.
小智 9
在添加视频播放器后,我会尝试添加autoplay属性.然后,这应该实例化播放功能.
那将是这样的:
var v = $("<video id='v' src='videofile.webm' autobuffer='auto' preload controls></video>");
$("#player").append(v);
v.attr('autoplay','autoplay');
Run Code Online (Sandbox Code Playgroud)
当您在JavaScript中创建元素(即图像元素,对象等)时,它们会立即加载并作为对象存储在内存中.这就是为什么你可以在加载页面之前预加载图像的原因.因此它不是一个jQuery错误.
参考:http://www.w3.org/TR/html5/video.html#attr-media-autoplay
当存在时,用户代理(如本文所述的算法中所述)将在不停止的情况下自动开始播放媒体资源.
小智 6
我在这里遇到了同样的问题.这似乎是在视频标记上使用"autoplay"属性的问题.
$('video')[0].play()