J'essaie actuellement d'enregistrer de l'audio via WasapiCapture et WaveWriter (paquet CSCore), et je veux arrêter l'enregistrement après que l'utilisateur arrête de parler. Quelqu'un peut m'aider?C# CSCore arrête l'enregistrement lorsque l'utilisateur arrête de parler
Ce qui m'est venu à l'esprit est que je pourrais potentiellement créer un RecordingVolumeHandler, qui se déclenche lorsque le volume est inférieur à un certain seuil pendant 1 ou 2 secondes. Comment puis-je faire ceci? Existe-t-il une méthode pour obtenir le volume de l'entrée audio en cours d'enregistrement?
Le code suivant est pour les deux fonctions que j'ai pour démarrer l'enregistrement et l'arrêter.
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();
}
}
Merci d'avance!