我一直在尝试使用Superpowered Audio SDK从缓冲区(short int)播放音频文件。目前,在每次调用process函数时,我都会传入输出缓冲区并像这样编写:
getBufferData(short int *output, unsigned int samples) {
memcpy(output, buffer + bufferPtr, samples * sizeOf(short int));
bufferPtr += samples;
}
产生的音频可以识别为我试图播放的歌曲,但严重失真。
我已经通过将其写入wav文件并以此方式测试播放来检查缓冲区中的数据是否是我所期望的。
我的预感是,memcpy例程可能过于密集而无法频繁调用,但我无法找到替代方案。
我也明白这种播放方法不适合使用superpowered播放音频文件,但对于我的用例是必需的。
非常感谢任何指导!
答案 0 :(得分:0)
也许你有立体声/单声道问题。 您描述的示例适用于单声道。