首先是一点背景。我已经使用网络上可用的实验性音频 api 工作了很长一段时间。在那段时间里,我接触了 Mozilla 的音频数据 API 和 Web 音频 API,用于以下列方式处理和操作音频:-
- 从音频文件中收集原始音频数据(样本数组)/创建一个简单的音频样本数组,该数组可用于表示缓冲区中包含的各个样本。
- 处理有问题的缓冲区,执行 FFT 分析并使用处理后的音频创建一个新的缓冲区(简单的样本数组),例如过滤的样本集合。
- 将生成的缓冲区写入新的音频对象。
我最近开始考虑迁移到 SoundManager2 API,它利用 flash 为不支持在浏览器中处理音频所需的某些 html5 功能的浏览器提供后备,但是,我似乎陷入了困境最后阶段。
我可以访问原始音频数据以进行操作,但 SoundManager2 似乎不允许将缓冲区写入新的音频对象,就像您在下面显示的 Moz Audio Api 示例中那样。
// Create input audio object
var audio = new Audio();
audio.src = 'my_audio_file.ogg';
var channels;
var rate;
// Get input data
audio.addEventListener('loadedmetadata', function() {
var channels = this.mozChannels;
var rate = this.mozSampleRate;
}, false);
// Create output audio object with input settings
var output = new Audio();
output.mozSetup(channels, rate);
// Do something as the buffer is played
audio.addEventListener('MozAudioAvailable', function(event) {
// Process audio and write to output object
// event.frameBuffer is an array of raw audio samples
output.mozWriteAudio(event.frameBuffer);
}, false);
谁能告诉我是否有一个类似于 SoundManager2 的库可以进行音频数据的写入和读取。或者我只是在 Soundmanager 中遗漏了一些东西,而我实际上可以执行这种类型的处理。任何建议将不胜感激。
谢谢
安德鲁