是否可以使用AVAudioPlayer和initWithData:错误:播放生成的声音?

时间:2012-06-27 08:57:48

标签: ios core-audio

是否可以使用AVAudioPlayer播放自定义声音(例如,我会生成正弦波然后播放)? 文档说AVAudioPlayer可用于:

  

播放文件或内存缓冲区中的声音

但我找不到播放自定义生成声音的示例,只能找到从文件或互联网加载的内存缓冲区。是否可能,我在哪里可以找到更多?

谢谢:)

2 个答案:

答案 0 :(得分:1)

经过大量搜索(搜索文档和谷歌搜索)后,我得出结论:

  

播放文件或内存缓冲区中的声音

指的是包含格式化音频数据的内存缓冲区。如果你的磁盘或互联网上的某个地方有MP3,你可以将它加载到内存缓冲区然后播放它。这就是他们的意思。如果要播放生成的声音,可以使用OpenAL或AudioUnits。

答案 1 :(得分:0)

您可以使用OpenAL执行此操作:

void* bufferData; // your generated sound
int bufferDataLength; // length

alGenBuffers(1, &bufferID);
alBufferData(bufferID, AL_FORMAT_MONO8, bufferData, bufferDataLength, 44100);