iOS音頻學習之五做個本地播放器

經(jīng)過前面幾章,我們要來寫一個簡單的本地播放器,運用到之前說到的AudioFileStream,AudioFile,AVAudioSession

AudioFileStream vs AudioFile

兩種都是解析音頻信息及分離幀,為什么要同時使用
1.對于網(wǎng)絡流播放必須要AudioFileStream,因為我們之前在AudioFile說過Open的時候要求使用者提供數(shù)據(jù),如果提供的數(shù)據(jù)不足會直接跳過并且返回錯誤碼,而數(shù)據(jù)不足的情況在網(wǎng)絡流中很常見,所以沒辦法使用AudioFile單獨進行網(wǎng)絡流數(shù)據(jù)的解析
2.本地音樂播放選用AudioFile更為合適,原因是AudioFileStream是主要用在流播放,雖然不限于網(wǎng)絡流和本地流,但是流數(shù)據(jù)是按順序提供的所以AudioFileStream也是順序解析的,被解析的音頻文件還是需要符合流播放的特性,對于不符合的本地文件AudioFileStream會在Parse返回NotOptimized錯誤;而AudioFile的解析過程并不是順序的,它會在解析時通過回調向使用者索要某個位置的數(shù)據(jù),即使數(shù)據(jù)在文件末尾也沒關系,所以AudioFile適用于所有類型的音頻文件;

所以我們需要同時使用這兩個類,前者可以應對流播放的音頻數(shù)據(jù),實現(xiàn)邊播邊緩沖的體驗,用AudioFile處理無法流播放的音頻數(shù)據(jù),讓用戶在下載完成之后仍然能夠進行播放

具體demo看https://github.com/chanbendong/ZJAudioPlayer

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 原文鏈接http://www.cnblogs.com/kenshincui/p/4186022.html 音頻在i...
    Hyman0819閱讀 22,149評論 4 74
  • 初次接觸JS,對一些基本概念進行探究。 this與優(yōu)先級 this是一個完全根據(jù)調用點(函數(shù)是如何被調用的)而為每...
    ShawnZhong閱讀 790評論 1 0
  • 突然間就遭到了冷落,卻不知道為什么?想了很多的理由,又否定了這些理由。如果這是一部推理劇,那就需要更多的細節(jié)。有時...
    夾白閱讀 198評論 0 0
  • 思考了很久的東西一直不執(zhí)行等于沒想。從今日開始完成早晚兩個清單。
    艾三毛閱讀 224評論 0 0

友情鏈接更多精彩內容