通常声音合成播放,需要播放音频流。 而播放音频流的思路如下图:


AudioUnit 播放音频流

  1. 获取音频文件流,使用 ASIHTTPRequest 从服务器下载音频文件,或者使用NSFileHandle 读取本地音频文件。

  2. 解析文件流,使用 Audio File Stream Service 解析,获取音频数据。

  3. 音频解码,使用 AudioConverterRef 把音频从压缩格式转换成线性PCM格式。

  4. 播放音频数据,在mixer unit 设置音频输入channel 和 获取音频的回调方法。