1

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

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

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();
}

或者有没有更好的方法?

ps:

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

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;
4

1 回答 1

1

该代码应该可以工作,或者如果您想万无一失,请检查。typeof vp.attr('src') == "undefined"尽管如果您不使用 jQuery,您可能需要检查element.hasAttribute("src")

关于window.webkitURL.createObjectURL,我认为当您在本地测试 Chrome 时(例如在 URL 上),Chrome 会限制某些file://内容,您要么必须在 localhost 上设置一个简单的 HTTP 服务器,要么使用.--allow-file-access-from-files

于 2012-05-28T04:15:10.297 回答