2011-07-20 95 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