2012-04-23 67 views
0

可能重複:
playing a .caf file: works fine in simulator but not in iPhoneSimpleAudioEngine,播放文件的.caf

我試圖使用SimpleAudioEngine在iPhone應用程序我正在播放背景音樂。我用下面的代碼播放背景音樂:

[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic: @"MenuTheme.mp3"]; 
[[SimpleAudioEngine sharedEngine] playBackgroundMusic: @"MenuTheme.mp3" loop: YES]; 

這工作正常。

然而,當我使用終端使用以下行轉換MenuTheme.mp3到MenuTheme.caf:

afconvert -f caff -d LEI16 "MenuTheme.mp3" "MenuTheme.caf" 

,我再次使用SimpleAudioEngine播放文件的.caf,這是行不通的。

有關如何解決此問題的任何想法? .caf文件在我點擊它時會播放。在終端中,當我寫:

afinfo "MenuTheme.caf" 

它告訴我的數據格式是2通道,44100赫茲,「LPCM」(0x0000000C)16位小端整數簽名沒有通道的佈局。

我真的不知道什麼是錯,但我在iPhone上使用音頻也很新。任何幫助表示讚賞。謝謝。

編輯:afconvert拼錯

+0

http://stackoverflow.com/questions/1363972/playing-a-caf-file-works-fine-in-simulator-but-not-in-iphone – 2012-04-23 19:20:52

+1

謝謝,你會想到蘋果會盡量確保模擬器和iPhone設備都具有相同的編解碼器。 – markckim 2012-04-23 19:56:17

回答

2

我認爲這是不afconvertfconvert在文件檔案你的問題。 (我相信這是一個錯字,對吧?)我沒有看到你的命令行顯而易見的問題。我通常使用:

afconvert -f caff -d [email protected] sound.wav 

將我的wave文件轉換爲CAF。

由於無法通過單擊播放CAF文件,我建議有一個嘗試將其轉換爲其他格式,如波或AIFF:

afconvert -f AIFC -d ima4 sound.wav 

,並嘗試在Finder中播放它們。如果它不起作用,請嘗試將MPEG Layer 3文件先轉換爲第三方工具(如Audacity),然後再用afconvert重試。

P.S.我通常使用CAF來播放音效,並使用AIFF來播放背景音樂。請參閱:Sound on iOS: Best Practices.

+0

感謝,解釋和最佳實踐的鏈接是非常有幫助的。我會嘗試使用AIFF作爲背景音樂和CAF作爲音效。 – markckim 2012-04-23 19:55:26