【问题标题】:Getting audio visualization using Web Audio API to work on iOS使用 Web Audio API 获取音频可视化以在 iOS 上工作
【发布时间】:2013-05-30 05:24:35
【问题描述】:

我正在开发一个专门在 iPhone 上使用的 HTML5 音频播放器,并试图让一个 EQ 可视化器工作。根据我的发现,有两种设置方法:


使用 XMLHttpRequest 按需加载 mp3 文件的地方:

var request = new XMLHttpRequest();
request.open('GET', 'sampler.mp3', true);
request.responseType = 'arraybuffer';
request.addEventListener('load', bufferSound, false);
request.send();

function bufferSound(event) {

   var request = event.target;
   var buffer = myAudioContext.createBuffer(request.response, false);
   source = myAudioContext.createBufferSource();
   source.buffer = buffer;

}

然后您可以使用 source.noteOn 和 source.noteOff 函数来播放和暂停音频。以这种方式工作,我能够进行 EQ 可视化。但是,您必须等到 mp3 文件完全加载后才能开始播放,这在我们的情况下不起作用。


另一种方法是在页面上已有一个<audio> 元素,然后您可以使用以下方法从中获取音频数据:

source = myAudioContext.createMediaElementSource(document.querySelector('audio'));

然后您可以使用音频标签的播放和暂停功能。这解决了加载问题,因为它允许在页面加载后立即播放媒体......但是,EQ 可视化消失了。


在 Chrome (WIN) 上测试时,这两种方法都会显示 EQ,因此 iOS/iPhone 似乎有一些特定的东西不允许我从 <audio> 标记中获取数据,但可以让我得到如果我按需加载 mp3 文件。

...

有什么想法吗?

【问题讨论】:

    标签: ios html visualization html5-audio web-audio-api


    【解决方案1】:

    【讨论】:

    • 这里是……伙计,我找了好久没看到那个帖子。另外,我没有 iPhone,所以我必须在朋友的 iPhone 上进行测试,并且还不能使用它进行调试。无论如何,感谢您的帮助。
    • 没问题。我和你一样失望。希望 Mozilla 在实现 MediaElementSource 后不会遇到同样的问题 -_-
    • True true... 我直接向 Apple 报告了这个错误,尽管我猜它可能什么也没做。 :)
    猜你喜欢
    • 2019-07-02
    • 2019-01-28
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多