AudioRecord没有录制任何内容

时间:2017-03-09 17:22:39

标签: android xamarin xamarin.android

我正在尝试使用AudioRecord课程在我​​的Android设备上录制音频。但是当我停止录制时,我从中读取的数据全是零。当我开始录制音频时,我做了:

int BufferElements2Rec = 1024;
int BytesPerElement = 2;

recorder = new AudioRecord(AudioSource.Mic,
                           8000,
                           ChannelIn.Mono,
                           Encoding.Pcm16bit,
                           BufferElements2Rec * BytesPerElement);

recorder.StartRecording();

当我停止录制时:

var sData = new short[BufferElements2Rec];
recorder.Read(sData, 0, BufferElements2Rec);

if (sData.Any(d => d != 0))
{
    int test = 1; // Breakpoint never gets hit
}

recorder.Stop();
recorder.Release();
recorder.Dispose();
recorder = null;

知道为什么吗?

修改

我刚刚意识到即使在致电recorder.StartRecording()之后,RecordingState属性仍为Stopped

1 个答案:

答案 0 :(得分:1)

  

的Manifest.xml

将此行添加到Mainfest文件以进行权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />

并提供麦克风许可,

Settings > Apps > YOUR_APP_NAME > Permissions

Permissions Microphone之后录制您的音频。