【问题标题】:Javascript -- push audio to mobile device (Mobile Safari and Chrome)Javascript -- 将音频推送到移动设备(移动 Safari 和 Chrome)
【发布时间】: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


【解决方案1】:

请查看此答案以了解状态:

What are the limitations of HTML5 audio on Android and iOS?

存在一些移动限制。

【讨论】:

  • 有趣。请注意这些限制,但是当按下“加载此文件”按钮时,hpr.dogphilosophy.net/test/ 站点会在 Android Chrome 和 IOS Safari 上播放 wav 文件。
  • @HP1,窃取该代码并与您的代码进行比较! :)
猜你喜欢
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多