2011-07-20 141 views
1

我在這裏遇到了一個相當奇怪的問題。 我正在開發即時消息軟件,需要播放Android上另一個客戶端錄製的音頻文件。 我可以用3GA(iOS 4.2.1)設備和模擬器4.2上的AVAudioPlayer播放同樣的音頻文件。 但是當我嘗試在iPhone4(iOS 4.3.3)上播放時,「play」功能總是返回NO。關於在不同設備上播放AMR音頻文件

我也嘗試過兩款iPhone設備,iPhone客戶端錄製的音頻文件可以在3GS和iPhone4上播放。 因此,我向Android開發者詢問了他們使用的記錄參數。他們說他們使用的「AudioEncoder」是「DEFAULT」。還有一些其他參數如下:

**private AudioEncoder() {} 
     public static final int DEFAULT = 0; 
     /** AMR (Narrowband) audio codec */ 
     public static final int AMR_NB = 1; 
     /** @hide AMR (Wideband) audio codec */ 
     public static final int AMR_WB = 2; 
     /** @hide AAC audio codec */ 
     public static final int AAC = 3; 
     /** @hide enhanced AAC audio codec */ 
     public static final int AAC_PLUS = 4; 
     /** @hide enhanced AAC plus audio codec */ 
     public static final int EAAC_PLUS = 5;** 

有誰知道這是怎麼回事?

+0

Android的人嘗試了其他4個參數,也無法在IOS4.3.3設備上播放。我不認爲這是設備問題,而是IOS的不同版本。 – LeverkusenFan

+0

我安裝了XCode4並在模擬器4.3上運行我的應用程序,它也無法播放音頻。所以這絕對是操作系統版本問題。但我仍然沒有解決方案:( – LeverkusenFan

+0

已經報告了一個bug的蘋果關於它 – LeverkusenFan

回答

2

我已經解決了這個問題。

在iOS4.3或更高版本中,不再支持AMR格式。如果你想播放或錄製一個,你必須使用其他工具(我使用opencore-amr庫)來轉換格式。

+0

嗨,你有什麼建議在Xcode4.2/ios5下建立圖書館?來自http://sourceforge.net/mailarchive/的建議message.php?msg_id = 28298963有點過時... – qix