Ich versuche gerade, Audio über WasapiCapture und WaveWriter (CSCore-Paket) aufzunehmen und möchte die Aufzeichnung stoppen, nachdem der Benutzer nicht mehr spricht. Kann mir jemand helfen?C# CSCore Stoppen der Aufnahme, wenn der Benutzer aufhört zu sprechen
Was mir in den Sinn kam, ist, dass ich möglicherweise einen RecordingVolumeHandler erstellen könnte, der ausgelöst wird, wenn die Lautstärke 1 oder 2 Sekunden lang unter einem bestimmten Schwellenwert liegt. Wie kann ich das machen? Gibt es eine Methode, um die Lautstärke von dem Audioeingang zu erhalten, der gerade aufgenommen wird?
Der folgende Code ist für die zwei Funktionen, die ich habe, um die Aufnahme zu starten und zu stoppen.
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();
}
}
Vielen Dank im Voraus!