之前在做一个项目通过蓝牙接收PCM数据并实时播放出来(类似对讲机的功能), 之前没做过跟音频有关的东西, 网上搜索出来的资料大部分都是播放本地文件或者URL的。很少有播放PCM流的现成代码可以用。
估计搜索到最多的就是那个通过OpenAL播放的代码了吧。那个我自己用起来有各种问题。不得已只好自己研究OpenAL。重新写了一下,亲测好用。功能说明:简单的实现了播放流式PCM数据的功能使用方法: (.h文件内也有详细说明)1. 导入OpenAL.framework2. alloc/init方法创建对象3. 调用initOpenAL方法初始化OpenAL4. 使用insertPCMDataToQueue:size:方法将PCM数据加载到缓冲队列里, 会自动播放5. 不用的时候, 先调用clean方法关闭OpenAL然后再销毁对象. (不clean的话, 下次初始化会有问题)注意事项:使用时需要根据自己的情况将insertPCMDataToQueue:size:方法内的下列语句里的参数更改一下。alBufferData(bufferID, AL_FORMAT_MONO16, (char *)[nData bytes], (ALsizei)[nData length], 8000);下载地址: