【发布时间】:2017-12-27 12:32:33
【问题描述】:
我目前正在尝试通过 WasapiCapture 和 WaveWriter(CSCore 包)录制音频,并希望在用户停止讲话后停止录制。谁能帮我吗?
我想到的是,我可能会创建一个 RecordingVolumeHandler,它会在音量低于某个阈值 1 或 2 秒时触发。我怎样才能做到这一点?有没有办法从当前正在录制的音频输入中获取音量?
以下代码用于我用于开始录制和停止录制的两个函数。
private WasapiCapture capture;
private WaveWriter writer;
private void startRecording()
{
capture = new WasapiCapture();
capture.Initialize();
writer = new WaveWriter("file.wav", capture.WaveFormat);
capture.DataAvailable += (s, capData) =>
{
writer.Write(capData.Data, capData.Offset, capData.ByteCount);
};
capture.Start();
}
private void stopRecording()
{
if (writer != null && capture != null)
{
capture.Stop();
writer.Dispose();
capture.Dispose();
}
}
提前谢谢你!
【问题讨论】:
标签: c# audio volume recording cscore