我一直在尝试用xamarin格式录制音频,没有直接的方法来实现它,所以我试图通过自定义呈现来实现它,并且我遵循了这里的例子。
// AVAudioRecorder创建
//set up the NSObject Array of values that will be combined with the keys to make the NSDictionary
NSObject[] values = new NSObject[]
{
NSNumber.FromFloat (16000.0f), //Sample Rate
NSNumber.FromInt32 ((int)AudioToolbox.AudioFormatType.MPEG4AAC), //AVFormat
NSNumber.FromInt32 (1), //Channels
NSNumber.FromInt32 (16), //PCMBitDepth
NSNumber.FromBoolean (false), //IsBigEndianKey
NSNumber.FromBoolean (false) //IsFloatKey
};
//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.AVLinearPCMBitDepthKey,
AVAudioSettings.AVLinearPCMIsBigEndianKey,
AVAudioSettings.AVLinearPCMIsFloatKey
};
//Set Settings with the Values and Keys to create the NSDictionary
settings = NSDictionary.FromObjectsAndKeys (values, keys);
//Set recorder parameters
recorder = AVAudioRecorder.Create(url, new AudioSettings(settings), out error);但是,在代码中,“记录器=AVAudioRecorder.Create”(url,新AudioSettings(设置),out错误);始终为空
任何帮助都将不胜感激。
发布于 2015-08-02 08:50:44
我自己修复了它,通过更改音频设置使其工作如下
`var settings = new AudioSettings
{
SampleRate = 44100.0f,
Format = AudioFormatType.LinearPCM,
NumberChannels = 1,
LinearPcmBitDepth = 16,
AudioQuality = AVAudioQuality.High,
};`https://stackoverflow.com/questions/31764817
复制相似问题