![](/img/trans.png)
[英]AVAudioPlayer: MP3 file not playing on device, but works in Simulator (iOS 6)
[英]mp3 Sounds Playing on simulator but not on Device (Audio BeatBox)
我最終遇到了一個非常嚴重的問題:
我正在制作音頻同步的BEATBOX,同時播放16種不同的聲音。
為了實現mp3文件的時間同步,我們在AVAudioPlayer上放棄了,並采用了AUGraph方法:
MixerHostAudio.m和MixerHostAudio.h
我是從Apple的開發人員資源處下載的。
對於模擬器,該實現工作正常,但在設備上卻無法正常工作,該設備在加載第四個文件后崩潰了...
我們正在將文件加載為kAudioFormatLinearPCM格式。
我們將其更改為:kAudioFormatMPEGLayer3
由於文件全部為.mp3,我們認為這是必需的格式。
APP確實設法加載了資源,但是在startAUGraph方法上出現了錯誤。
APP Didnt在設備上崩潰,但在設備,模擬器中均未播放聲音。
我們嘗試將位速率從32更改為16,這似乎有所幫助..但仍然沒有聲音..幫助!
解決了:
顯然沒有辦法將壓縮的音頻文件加載到iOS上的AUGraph或AudioBuffer中,必須轉換為linearPCM,因此:
當轉換為linearPCM時,29秒的.mp3文件(每個500KB)變成5 MB文件。
iPhone 3G為每個應用程序提供大約20 MB的RAM內存,這解釋了為什么加載第四個文件(4 * 5 = 20:p)后APP崩潰的原因
理想的解決方案是實現每次僅加載文件的一小部分(例如1秒)的緩沖算法。
當時,這個解決方案有點麻煩,因此實際解決方案是為循環加載更短的文件,以使其能夠加載到3G和3GS設備上。 iPhone4將加載完整原始循環。
感謝所有的答復。
赫南
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.