将iphone麦克风的音频编码为gsm

时间:2012-10-25 14:28:03

标签: iphone xamarin.ios monodevelop wav gsm

我正在使用monotouch创建iphone应用程序,我需要将从麦克风收到的音频编码为gsm文件。

我已经将音频编码到wav中,但现在,为了更具体的需求,我需要将其录制到GSM中。如果有人可以告诉我或向我展示一些文档,解释如何将麦克风编码为gsm或如何将wav转换为gsm,这将是非常棒的。

泰, 阿克塞尔

---更新---

MonoTouch.AudioToolbox.AudioFormatType中有一个MicrosoftGSM条目,但是我收到了1718449215 OSStatus错误。我想原因是我的其他论点不正确。我不知道保存为GSM的规范。这是我的工作代码:

//set up the NSObject Array of values that will be combined with the keys to make the NSDictionary
        NSObject[] values = new NSObject[]
        {    
            NSNumber.FromFloat (44100.0f), //Sample Rate
            NSNumber.FromInt32 ((int)MonoTouch.AudioToolbox.AudioFormatType.MicrosoftGSM),
            NSNumber.FromInt32(2),
            NSNumber.FromInt32((int)AVAudioQuality.High),
        };
        //Set up the NSObject Array of keys that will be combined with the values to make the NSDictionary
        NSObject[] keys = new NSObject[]
        {
            AVAudioSettings.AVSampleRateKey,
            AVAudioSettings.AVFormatIDKey,
            AVAudioSettings.AVNumberOfChannelsKey,
            AVAudioSettings.AVEncoderAudioQualityKey,
        };          
        //Set Settings with the Values and Keys to create the NSDictionary
        settings = NSDictionary.FromObjectsAndKeys (values, keys);

1 个答案:

答案 0 :(得分:1)

坏消息,没有内置方法可以使用AVAudioRecorder录制GSM音频文件

唯一支持的录音格式是

  • MPEG4AAC
  • AppleLossless
  • AppleIMA4
  • iLBC
  • ULaw
  • LinearPCM

无论如何,您可以设置网络服务并使用可以为您转换音频的第三方转换器,如SoX

顺便说一句,如果您尝试使用MicrosoftGSM格式的录像机,您可能会收到一个OSStatus错误1718449215,它代表kAudioFormatUnsupportedDataFormatError错误

亚历