检测是否在 HTML5 视频播放器中设置了视频源

detecting if video source is set in html5 video player

本文关键字:视频 设置 播放器 HTML5 检测 是否      更新时间:2023-09-26

在我的应用程序中,我需要确保用户已将视频设置为我的html5视频播放器的来源,然后再继续执行其他操作。所以我试了这个(在火狐中使用火虫):

当用户为视频播放器设置源时

vp = $('#myvideoplayer')
vp.attr('src')  --> "blob:5c254454-6c4e-4b69-b381-9ad60d6b1c4a"

未为视频设置源时

vp.attr('src')  --> undefined

我可以使用它来检测用户是否已设置视频源吗?

if(vp.attr('src') != undefined){
   let_user_do_next_action();
}

还是有更好的方法?

附言:

我正在使用HTML5文件输入小部件设置视频源,如下所示。(这仅适用于 Firefox,因为出于某种原因,Chrome 不允许来自window.webkitURL createObjectURL

var file = $('#fileselect').get(0).files[0];
if (file==undefined){
    alert('no file chosen');
}
var myURL = window.URL || window.webkitURL;
var fileURL = myURL.createObjectURL(file);
if(fileURL){
    player = $('#myvideoplayer');
    player.src=fileURL;
    player.load();
}
return;

该代码应该有效,或者如果您想万无一失,请检查typeof vp.attr('src') == "undefined"。虽然如果你不使用jQuery,你可能想检查element.hasAttribute("src")

关于window.webkitURL.createObjectURL,我认为Chrome在本地测试时(例如在file:// URL上)会限制内容,并且您必须在本地主机上设置一个简单的HTTP服务器,或者使用--allow-file-access-from-files启动Chrome。