我正在尝试从用户加载文件并想用 javascript 播放它。
FileList
该文件已正确加载,我可以通过API看到名称、类型等来访问它 。
我不能做的是播放获得的文件。我试着做
myFile.play();
就像我总是对加载的文件做的那样,但它不起作用。
任何想法?
我正在尝试从用户加载文件并想用 javascript 播放它。
FileList
该文件已正确加载,我可以通过API看到名称、类型等来访问它 。
我不能做的是播放获得的文件。我试着做
myFile.play();
就像我总是对加载的文件做的那样,但它不起作用。
任何想法?
如果您只想播放媒体内容,而不是使用 FileReader,我建议您使用 createObjectURL 方法。它更有效,因为它不会创建包含文件内容的字符串。
https://developer.mozilla.org/fr/docs/DOM/window.URL.createObjectURL
做就是了 :
audio/video.src=window.URL.createObjectURL(myFile);
不要忘记在加载另一个媒体文件时撤销您的 uri 以避免内存泄漏:
window.URL.revokeObjectURL(audio/video.src);
您也需要FileReader
API(API 兼容性)并且您的浏览器需要支持 HTML5audio
标签。
像这样的东西:
<body>
<input type='file' id='fileInput' />
<audio id='player' />
<script type='javascript'>
var fileInput = document.getElementById("fileInput");
var freader = new FileReader();
freader.onload = function(e) {
document.getElementById('player').src = e.target.result;
document.getElementById('player').play();
}
fileInput.onchange = function(e) {
var files = e.target.files;
freader.readAsDataURL(files[0]);
}
</script>
</body>
你可以在这里阅读更多信息。
我的回答基于migerh 的解决方案