Javascript——将音频推送到移动设备(mobile Safari和Chrome)

Javascript -- push audio to mobile device (Mobile Safari and Chrome)

本文关键字:mobile Safari Chrome 移动 音频 Javascript      更新时间:2023-09-26

我编写了一些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();
}

我真的不知道下一步该去哪里。有人成功地将音频文件推送并播放到移动设备上吗?

请查看以下状态的答案:

HTML5音频在Android和iOS上有什么限制?

存在一些移动限制。