使用Audio Queue播放pcm流

#使用Audio Queue播放pcm流
因爲項目的原因,需要實現播放pcm流的播放器,對於iOS傳統的播放器AvPlayer等音頻播放器無法滿足需求,這個時候需要使用更加底層播放器,Audio quue;

介紹audio queue推薦官方文檔:About Audio Queues

使用音頻隊列需要先數顯幾個概念:
Audio Queue: 音頻隊列是調度音頻隊列的主體,負責調度整個播放過程的邏輯;
buffer queue:負責提供數據給Audio queue,類似於一個容器,可以服用數據,將自己的數據封裝好,填入buffer queue中,然後設置Audio queue 的start 函數,audio queue便開始消費buffer queue中的數據;

Audio Queue Callback: 這一塊是需要我們開發者重點處理的,當audio queue 消費完一個單元buffer的數據後,就會回調該方法,這時候我們需要給buffer queue中填入新的數據,通過這樣的方式可以保證數據不間斷的提供;

Audio queue 是典型的生產者,消費者模型,audio queue 負責消費數據,buffer queue,負責提供數據;

記錄幾個開發過程中遇到的坑:
1.在audio queue 回調buffer的時候,出現數據供應不上的問題,這個時候audio queue就觸發了stop方法,再次調用start方法也不會播放;
解決方法: 判斷沒有數據,自動填充爲空的數據;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章