我正在尝试使用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
答案 0 :(得分:1)
的Manifest.xml
将此行添加到Mainfest文件以进行权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
并提供麦克风许可,
Settings > Apps > YOUR_APP_NAME > Permissions
在Permissions
Microphone
之后录制您的音频。