我正在使用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);
答案 0 :(得分:1)
坏消息,没有内置方法可以使用AVAudioRecorder录制GSM
音频文件
唯一支持的录音格式是
无论如何,您可以设置网络服务并使用可以为您转换音频的第三方转换器,如SoX。
顺便说一句,如果您尝试使用MicrosoftGSM格式的录像机,您可能会收到一个OSStatus错误1718449215,它代表kAudioFormatUnsupportedDataFormatError
错误
亚历