gpt4 book ai didi

javascript - 使用 html5 文件 api 解码并播放歌曲

转载 作者:行者123 更新时间:2023-12-03 12:04:38 25 4
gpt4 key购买 nike

我第一次尝试学习文件api。在这里我想播放一首歌。但是没有声音生成。我尝试使用readAsArrayBuffer()方法,因为我发现它用于解码音频文件。但不幸的是没有发生任何事情。如何解决这个问题。谢谢:)

<html>

<head>
<style>
#files{
display:none;
}
#lab{
display:inline-block;
width:70px;
height:30px;
background:lime;
padding:5px;
}
#lab:hover{
cursor:pointer;
}
p{border:1px solid black;}
</style>
</head>
<body>
<form>
<input type='file' id='files'>
<label for='files' id='lab' style='text-decoration:underline;color:red;'>click</label>
</form>
<p>fileName :<span id='name'></span></p>



<script>
var music;
function init(){


document.getElementById('files').addEventListener('change',myfile,false);

}
function myfile(evt){
var files=evt.target.files[0];

if(files.type !='audio/mpeg'){
alert('no audio file');
return;
}
var reader=new FileReader();
reader.onload=function(e){
music=e.target.result;

var audio=new Audio();
audio.src=music;
audio.play();


}
reader.readAsArrayBuffer(files);

}


window.addEventListener('load',init,false);
</script>
</body>
</html>

最佳答案

尝试

     var music;
function init() {
document.getElementById('files')
.addEventListener('change',myfile,false);
};
function myfile(evt) {
evt.preventDefault();
evt.stopPropagation();
var files=evt.target.files[0];
// test for additional file types
var types = !((/audio\/mpeg|audio\/mp3|audio\/mp4|audio\/ogg|audio\/x+|wav/).test(files.type));

if(!!types){
alert('no audio file');
return;
};

var reader=new FileReader();
reader.onload=function(e){
music=e.target.result;
// see link
var audio = new Audio(music);
audio.play();
};
// substitute `readAsDataURL` for `readAsArrayBuffer`
reader.readAsDataURL(files);
};
window.addEventListener('load',init,false);

jsfiddle http://jsfiddle.net/guest271314/1314q3q9/

查看

https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement#Description

关于javascript - 使用 html5 文件 api 解码并播放歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com