2012-03-17 106 views
1

[编辑:这个问题是关于它不再被认为是对HTML5音频API而不是Mozilla的音频数据API支持]如何做HTML5音频/ Mozilla的音频数据API平移

我想使用Mozilla音频数据API更改音频文件的填充。我还没有找到任何方式来这样做。我甚至试图分开渠道,并通过不同的过滤器与不同的dbGain,没有运气。

回答

2

改变音频文件平衡的关键是抓取数据(例如立体声音乐文件)并更改右侧和左侧声道数据的值(幅度)。由于它们是连续的,所以使用[i * 2]和[i * 2 + 1]来访问右侧和左侧通道值。

采取下面的一个(我复制出来,从威利的HTML5游戏书)的一个例子:

function generateTone(freq, balance,sampleRate) { 
    var samples = Math.round(sampleRate/freq), 
    data = new Float32Array(samples *2), 
    var sample, i; 

    for (i = 0; i < samples; i++) { 
    sample = Math.sin(Math.PI * 2 * i/samples); 
    data[i * 2] = sample * (0.5 - balance); 
    data[i * 2 + 1] = sample * (0.5 + balance); 
    } 

    return data; 
} 

窦代您将不再需要你的情况。 其他问题? 最好的问候, 卢卡斯

+0

看到这样的事情的时候,我希望我是一个聪明的书呆子:对Mozilla的 – bigblind 2012-06-08 21:07:20

+0

数据API是死亡,但你的回答对我帮助很大的话,那么它值得+1 – sepans 2014-04-01 19:59:13