音声を録画するときのサンプル

Xamarinにあるサンプル(How to record sound using the iPhone microphone)が間違っていたので修正してみた。

上記ページにある

//public void start Recording
public void StartRecording ()
{
    NSObject[] values = new NSObject[]
    {    
        NSNumber.FromFloat(44100.0f),
        NSNumber.FromInt32((int)AudioFileType.WAVE),  // <-ここが間違い
        NSNumber.FromInt32(1),
        NSNumber.FromInt32((int)AVAudioQuality.Max)
    };

    NSObject[] keys = new NSObject[]
    {
.
.
.

ここの部分。AVAudioRecorderに渡している引数を作る所でAVFormatIDKey(配列の2番目)に指定するEnumが間違っている。
AudioFileTypeを渡すのではなく、正確にはAudioFormatTypeを指定するべきである。

//public void start Recording
public void StartRecording ()
{
    NSObject[] values = new NSObject[]
    {    
        NSNumber.FromFloat(44100.0f),
        NSNumber.FromInt32((int)AudioFormatType.LinearPCM),  // <-AudioFormatType Enum値
        NSNumber.FromInt32(1),
        NSNumber.FromInt32((int)AVAudioQuality.Max)
    };

    NSObject[] keys = new NSObject[]
    {
.
.
.