4

我正在尝试从用户加载文件并想用 javascript 播放它。

FileList该文件已正确加载,我可以通过API看到名称、类型等来访问它 。

我不能做的是播放获得的文件。我试着做

myFile.play();

就像我总是对加载的文件做的那样,但它不起作用。

任何想法?

4

2 回答 2

2

如果您只想播放媒体内容,而不是使用 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);
于 2013-05-26T16:16:24.477 回答
1

您也需要FileReaderAPI(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 的解决方案

于 2013-05-21T06:24:04.993 回答