我正在学习一些 JavaScript,选择一个文件并使用它来创建一个 objectUrl,它可以设置为src
HTML5 的video
。我在 Ubuntu Lucid 上的 Chrome 版本 18.0.1025.162 中对此进行了尝试,并在同一文件夹中使用带有 JavaScript 文件和媒体文件的本地 HTML 文件。
我可以使用 input 元素选择一个视频文件,当我点击播放链接时,JavaScript 函数playVideo()
就会执行。
<video id="vid" name='myvid' width="640" height="360" controls="controls">
<source src="test.webm" type="video/webm" />
</video>
<br><a href="#" id="playlnk">Play </a> </li>
<br><input type="file" name="fileselect" id="fselect"> </input>
JavaScript 文件是
$(document).ready(function(){
player=$('#vid').get(0);
$('#playlink').click(function(){playVideo(player);});
});
function setVideoSrc(player,file){
console.log('winurl='+window.URL);
var fileURL = window.URL.createObjectURL(file);
player.src=fileURL;
player.load();
return;
}
function playVideo(player) {
var file=document.getElementById('fselect').files[0];
console.log('you chose:'+file);
if (file==undefined){
console.log('no file chosen');
}else{
console.log('file='+file);
setVideoSrc(player,file);
}
}
当我没有选择任何文件并单击播放链接时,默认视频播放和控制台日志显示未选择文件 - 正如预期的那样。
当我选择一个视频文件然后单击播放链接时会发生错误。然后playVideo()
调用setVideoSrc()
控制台日志window.URL' is
未定义的方法
为什么会这样?有人可以帮我纠正这个吗?这是控制台日志输出
you chose:[object File] //from playVideo() function
file=[object File] //from playVideo() function
winurl=undefined //setVideoSrc() function
Uncaught TypeError: Cannot call method 'createObjectURL' of undefined