1

我一直在使用几个不同的 Web Audio API 库,但结果好坏参半。到目前为止,我最喜欢的是 Timbre.js。我通常会从 iOS 上的扬声器中听到“嗡嗡声”(即使使用 AudioContextMonkeyPatch 也是如此)。这有时不会发生。例如,重新启动手机,启动应用程序,单击“开始”按钮,声音与我的桌面浏览器相同(对我的耳朵而言)。做出改变(例如改变节奏),然后嗡嗡嗡嗡。但一般来说,音频输出是蜂鸣蜂鸣。

示例代码:

var freqs = T(function(count) {
  return [220, 440, 660, 880][count % 4];
});

var osc = T("sin", {freq:freqs, mul:0.5});
var env = T("perc", {a:50, r:500}, osc).bang();

var interval = T("param", {value:500}).linTo(50, "30sec");

T("interval", {interval:interval}, freqs, env).start();

env.play();
4

1 回答 1

1

在你之后不久我问了一个类似的问题(iOS9 中 WebAudio API 中的失真?)并相信我找到了答案:WebKit Audio distorts on iOS 6 (iPhone 5) first time after powercycle

摘要:以所需的比特率播放音频样本,然后创建一个新的上下文。

// inside the click/touch handler
var playInitSound = function playInitSound() {
    var source = context.createBufferSource();
    source.buffer = context.createBuffer(1, 1, 48000);
    source.connect(context.destination);
    if (source.start) {
        source.start(0);
    } else {
        source.noteOn(0);
    }
};

playInit();
if (context.sampleRate === 48000) {
    context = new AudioContext();
    playInit();
}

编辑注意,您可能必须对 Timbre.js 进行一些黑客攻击才能使其正常工作,但它至少对我自己使用 Web Audio 有效。

于 2016-01-16T22:33:54.877 回答