【发布时间】:2015-11-24 07:06:23
【问题描述】:
我编写了一些 javascript,可以成功地在桌面上提取和播放音频文件。但是,我无法在移动设备上解决这个问题——这确实是我的意图。
现在对于桌面,我可以使用这个 javascript 推送和播放音频:
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', url);
audioElement.setAttribute('autoplay', 'autoplay');
$.get();
audioElement.addEventListener("load", function() {
audioElement.play();
}, true);
(其中 url 是我的网络服务器上的位置)
我读到移动设备上的音频需要初始用户操作才能激活,因此我尝试制作:
var audioElement = document.createElement('audio');
一个全局元素,然后在 document.ready 部分,当用户按下“工具”按钮时,我激活了音频:
$(document).ready(function() {
$("#toolButton").click( function () {
// Need a 'click' event to turn on sound for mobile devices
if (audio_init === undefined) {
audioElement.play();
}
audio_init = 1;
但是,这并不成功。
然后我又尝试了网络音频,这段代码允许我在桌面浏览器上播放,但在移动设备上没有:
var webaudio_play = function(url) {
ctx = new webkitAudioContext();
var req = new XMLHttpRequest();
req.open("GET",url,true);
req.responseType = "arraybuffer";
req.onload = function() {
ctx.decodeAudioData(req.response, function(buffer) {
var src = ctx.createBufferSource();
src.buffer = buffer;
src.connect(ctx.destination);
//src.start();
src.noteOn(0);
});
};
req.send();
}
我真的不知道下一步该去哪里。有没有人成功将音频文件推送和播放到移动设备上?
【问题讨论】:
-
好吧,你似乎已经尝试了一切。有什么错误吗?您是否检查过代码是否已执行?它只是默默地失败了吗?
-
它只是默默地失败了。我还没有连接平板电脑,所以我可以通过桌面 chrome 或 safari 进行调试。
标签: javascript android ios audio web-audio-api