Javascript 无法从mobile Chrome中的blob url读取音频
我想在我的移动web应用程序中使用mp3播放,所以我编写了一个测试应用程序,我使用了解决方案,但blob URL似乎已损坏且为空,而文件已正确读取Javascript 无法从mobile Chrome中的blob url读取音频,javascript,html,audio,blob,Javascript,Html,Audio,Blob,我想在我的移动web应用程序中使用mp3播放,所以我编写了一个测试应用程序,我使用了解决方案,但blob URL似乎已损坏且为空,而文件已正确读取 <input type="file" accept=".mp3" onchange="autoplay()"> <script> var file, url, audio, source; function autoplay(){ window.URL = window.URL || window.webkit
<input type="file" accept=".mp3" onchange="autoplay()">
<script>
var file, url, audio, source;
function autoplay(){
window.URL = window.URL || window.webkitURL;
file = document.querySelector("input[type=file]").files[0];
url = decodeURIComponent(window.URL.createObjectURL(file));
audio = document.createElement("audio");
source = document.createElement("source");
source.src = url;
audio.appendChild(source);
document.body.appendChild(audio);
audio.play();
}
</script>
var文件、url、音频、源;
函数autoplay(){
window.URL=window.URL | | window.webkitURL;
file=document.querySelector(“input[type=file]”)。files[0];
url=decodeURIComponent(window.url.createObjectURL(文件));
音频=document.createElement(“音频”);
source=document.createElement(“source”);
source.src=url;
音频。附加子(源);
文件.正文.附件(音频);
音频播放();
}
Blob大小不对,我放了更大的文件
编辑:
我在FileReader中使用了较旧的版本,也许这不是一个好选择,但它可以工作…不要使用
decodeURIComponent
只需执行URL.createObjectURL
window.URL=window.URL | | window.webkitURL;
功能自动播放(evt){
var file=document.querySelector(“输入[type=file]”)。文件[0];
var url=url.createObjectURL(文件);
var audio=新音频();
audio.src=url;
audio.play().catch(函数(错误){
console.error(err)//无法播放音频
});
audio.controls=true;
文件.正文.附件(音频);
}
document.querySelector(“input[type=file]”。onchange=autoplay
谢谢,我使用它时没有使用decodeURIComponent,我也遇到了同样的问题-文件只是空的,然后我决定使用FileReader-它可以工作,但如果文件较大,它会使移动浏览器崩溃