html5 – 在Javascript中使用Web Audio API的本地文件

前端之家收集整理的这篇文章主要介绍了html5 – 在Javascript中使用Web Audio API的本地文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Web Audio API在iPhone游戏上获得声音。问题是这个程序完全是客户端。我想将我的mp3存储在本地文件夹中(而不是用户输入驱动),所以我不能使用XMLHttpRequest来读取数据。我正在研究使用FileSystem,但Safari不支持它。

有什么办法吗?

编辑:感谢以下回复。不幸的是,Audio API对于游戏来说是非常慢的。我有这个工作,延迟只会使用户体验不可接受。为了澄清,我需要的是如此 –

var request = new XMLHttpRequest();
request.open('GET','file:///./../sounds/beep-1.mp3',true);
request.responseType = 'arraybuffer';
request.onload = function() {
    context.decodeAudioData(request.response,function(buffer) {
    dogBarkingBuffer = buffer;
},onError);
}
request.send();

但这给我的错误

XMLHttpRequest无法加载文件:///sounds/beep-1.mp3。只有HTTP支持交叉原始请求。
未捕获错误:NETWORK_ERR:XMLHttpRequest异常101

通过阅读本地文件了解安全风险,但是在您自己的域内肯定可以吗?

解决方法

我有同样的问题。我发现这个非常简单的解决方案。

JS:

audio_file.onchange = function(){
    var files = this.files;
    var file = URL.createObjectURL(files[0]); 
            audio_player.src = file; 
    audio_player.play();
};

HTML:

<input id="audio_file" type="file" accept="audio/*" />
<audio id="audio_player" />

你可以在这里测试:
http://jsfiddle.net/Tv8Cm/

原文链接:https://www.f2er.com/html5/169056.html

猜你在找的HTML5相关文章