HTML5视频中设置currentTime的问题
Issue setting currentTime in HTML5 video
我的html中间有一个视频。正如你一开始看到的,我没有任何来源的
<video id="videoPrincipal" src="" width="640" height="360" controls preload></video>
当我点击一个按钮时,我会触发一个功能,使:
myVid = document.getElementById('videoPrincipal');
myVid.src = 'video.mp4';
myVid.play();
myVid.currentTime ='5';
视频开始正确播放,但我无法设置当前时间(我做了与中相同的设置http://www.w3schools.com/tags/av_prop_currenttime.asp)
如果在调用play函数之前设置currentTime,也会出现同样的错误。
控制台中显示的错误如下:"Uncaught InvalidStateError:试图使用一个不可用或不再可用的对象。"(在currentTime行中),但当我搜索这个问题时,我无法将其与视频联系起来,只能与画布联系起来。
提前感谢
您不必等待它开始播放,但它必须准备好播放。有canplay事件可以做到这一点,所以像这样的事情应该会起作用:
myVid.play();
myVid.addEventListener('canplay', function() {
this.currentTime = 5;
});
如上所述,当视频不可见时,您尝试设置currentTime。因此,作为一种替代用例(例如,当用户点击按钮时,将时间重置为0),您可以执行以下操作:
function resetVideo() {
myVid.pause();
if (myVid.seekable.length > 0) {
myVid.currentTime = 0;
}
}
或者,您也可以仅在之前播放过视频的情况下尝试重置。
function resetVideo() {
myVid.pause();
if (myVid.currentTime !== 0) {
myVid.currentTime = 0;
}
}
video = document.getElementById('video');
begin_play = 50;
play_video_first = true; //if you want to run only first time
video.addEventListener("play", capture, false);
function capture(event)
{
if (event.type == "play"){
if(play_video_first){
play_video_first = false;
video.currentTime = begin_play;
}
}
}
你必须等到它准备好播放,
即不要期望play
是阻塞函数
更改您的代码如下:
myVid.play();
myVid.media.addEventListener('playing', function(){
myVid.setCurrentTime(5);
});
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 由于iframe导致的问题
- HTML5视频中设置currentTime的问题
- video.currentTime 事件绑定出现问题