在iOS系統中apple對音頻播放需要的操作進行了封裝并提供了不同層次的接口
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO5MDN3UTMwMTMtAzN4YzMyADMxQjM4AjNxAjMtcjN3EDN48CX4AjNxAjMvw1N2cTM0gzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
下面對其中的中高層接口進行功能說明:
- Audio File Services:讀寫音頻資料,可以完成播放流程中的第2步;
- Audio File Stream Services:對音頻進行解碼,可以完成播放流程中的第2步;
- Audio Converter services:音頻資料轉換,可以完成播放流程中的第3步;
- Audio Processing Graph Services:音效處理子產品,可以完成播放流程中的第4步;
- Audio Unit Services:播放音頻資料:可以完成播放流程中的第5步、第6步;
- Extended Audio File Services:Audio File Services和Audio Converter services的結合體;
- AVAudioPlayer/AVPlayer(AVFoundation):進階接口,可以完成整個音頻播放的過程(包括本地檔案和網絡流播放,第4步除外);
- Audio Queue Services:進階接口,可以進行錄音和播放,可以完成播放流程中的第3、5、6步;
- OpenAL:用于遊戲音頻播放,
下圖描述的就是使用AudioFile + AudioConverter + AudioUnit進行音頻播放的流程(需要對音頻施加音效(均衡器、混響器)
轉載于:https://www.cnblogs.com/WJJ-Dream/p/5801754.html