8

这是一个将 html5 视频的标记附加到 DOM 的脚本:

document.body.innerHTML = '<video id="video" controls="controls" src="http://mirror.cessen.com/blender.org/peach/trailer/trailer_iphone.m4v" type="video/mp4"></video>';
var el = document.getElementById('video');
document.body.removeChild(el);
document.body.appendChild(el);

jsfiddle 演示:http: //jsfiddle.net/h8RLS/2/

这适用于所有经过测试的浏览器,iOS 上的 Safari 除外。在 iOS 中,当 HTMLVideoElement 重新附加到 DOM 时,它不再可播放。

有没有其他人解决或遇到过这个问题?

4

3 回答 3

4

我没有 iPad,但可以在 iPhone 上重现您的问题。这似乎是一个 Webkit 错误,但可以通过更改src视频的属性轻松绕过它 - 我希望这足以满足您的场景。你可以在这里看到一个工作演示:

http://vidhtml5.appspot.com/jsembed.html

这是代码:

var el = document.getElementById('video');
el.src= "http://mirror.cessen.com/blender.org/peach/trailer/trailer_iphone.m4v";
el.load();
于 2013-01-29T18:11:04.010 回答
0

我遇到了同样的问题,我找到了一个使用计时器的解决方法(我在这里使用 jQuery)。

var v = $('#videoID');
v.appendTo( $('#toDivID') );
var timer = setInterval( function() {
    clearInterval( timer );
    v[0].load();
    v[0].play();
}, 200 );

我只在 iOS 6.1 的 iPad2 上测试过。

于 2013-02-08T12:20:48.620 回答
-1

您可以为视频添加两个“来源”标签。我在一个网站上做过这个,效果很好。

<video class="video" controls="controls" id="video1">
<source type="video/mp4" src="demo.mp4">
<source type="video/webm" src="demo.webm">              
</video>
于 2013-02-04T20:09:58.927 回答