如何将文件加载到html5音频标记中

Mas*_*ght 6 html5 html5-audio

我如何将音频文件从<input type="file">标签加载到音频标签?我试过了 :

<input type="file" id="file"></input>
<script>
var file = document.getElementById("file");
var audio = document.createElement("audio");
audio.src = file.value;
document.write(audio)
</script>
Run Code Online (Sandbox Code Playgroud)

Ada*_*zad 7

我相信它会满足您的需求.首先,文件输入需要通过JavaScript或jQuery绑定(如果您愿意).您可以使用浏览器支持Blob

以下是一个非常基本的例子;

<input type="file" id="file"></input>
<audio id="audio" controls autoplay></audio>
Run Code Online (Sandbox Code Playgroud)

我们#file使用AddEventListener如下绑定for更改

// Check for BlobURL support
var blob = window.URL || window.webkitURL;
    if (!blob) {
        console.log('Your browser does not support Blob URLs :(');
        return;           
    }

document.getElementById('file').addEventListener('change', function(event){

        consolePrint('change on input#file triggered');
        var file = this.files[0],
         fileURL = blob.createObjectURL(file);
        console.log(file);
        console.log('File name: '+file.name);
        console.log('File type: '+file.type);
        console.log('File BlobURL: '+ fileURL);
        document.getElementById('audio').src = fileURL;

});
Run Code Online (Sandbox Code Playgroud)

或者另一方面,这是我创建的一个很好的,更具互动性的例子

<iframe style="height:600px;width:102.7%;margin:-10px;overflow:hidden;" src="//jsfiddle.net/adamazad/0oy5moph/embedded/result,js,html,css/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
Run Code Online (Sandbox Code Playgroud)