1

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

我已经将音频编码为 wav,但现在,为了更具体的需要,我需要将其录制到 GSM 中。如果有人能告诉我或给我看一些文档,解释如何从 mic 编码到 gsm 或如何将 wav 转换为 gsm,那就太棒了。

泰,阿克塞尔

- - 更新 - -

中有一个 MicrosoftGSM 条目MonoTouch.AudioToolbox.AudioFormatType,但我收到 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);
4

1 回答 1

1

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

唯一支持的录音格式是

  • MPEG4AAC
  • 苹果无损
  • 苹果IMA4
  • iLBC
  • 法律
  • 线性PCM

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

顺便说一句,如果您尝试使用 MicrosoftGSM 格式的记录器,您可能会收到 OSStatus 错误 1718449215,这是kAudioFormatUnsupportedDataFormatError错误的表示

亚历克斯

于 2012-10-25T16:10:45.690 回答