之前在做一个项目通过蓝牙接收PCM数据并实时播放出来(类似对讲机的功能), 之前没做过跟音频有关的东西, 网上搜索出来的资料大部分都是播放本地文件或者URL的。很少有播放PCM流的现成代码可以用。
估计搜索到最多的就是那个通过OpenAL播放的代码了吧。那个我自己用起来有各种问题。不得已只好自己研究OpenAL。重新写了一下,亲测好用。

功能说明:
简单的实现了播放流式PCM数据的功能

使用方法: (.h文件内也有详细说明)
1. 导入OpenAL.framework
2. alloc/init方法创建对象
3. 调用initOpenAL方法初始化OpenAL
4. 使用insertPCMDataToQueue:size:方法将PCM数据加载到缓冲队列里, 会自动播放
5. 不用的时候, 先调用clean方法关闭OpenAL然后再销毁对象. (不clean的话, 下次初始化会有问题)


注意事项:
使用时需要根据自己的情况将insertPCMDataToQueue:size:方法内的下列语句里的参数更改一下。
alBufferData(bufferID, AL_FORMAT_MONO16, (char *)[nData bytes], (ALsizei)[nData length], 8000);

下载地址:
http://pan.baidu.com/share/link?uk=3271899445&shareid=2537685654