Aufzeichnen von live-audio von der Mikrofon-Eingang und speichern gleichzeitig

War ich versucht zu entwickeln, einen Voice recorder in C#. Ich habe versucht, viele Möglichkeiten, wie NAudio, DirectX, Microsoft.Xna.Rahmen.Audio, etc.

Alles liefert das gleiche Ergebnis. Nachdem wir die Aufzeichnung beenden, wird die Ausgabe-Datei mp3/wav gespeichert erhalten.

Mp3 - /wav-Datei erstellt, die zu Beginn selbst (und ohne Inhalt - 0 bytes)

Ich versuche, eine Anwendung zu erstellen, die speichern können audio-live/simultan.

    private void StartRecording() {
        this.WaveSource = new WaveInEvent { WaveFormat = new WaveFormat(44100, 1) };

        this.WaveSource.DataAvailable += this.WaveSourceDataAvailable;
        this.WaveSource.RecordingStopped += this.WaveSourceRecordingStopped;

        this.WaveFile = new WaveFileWriter(@"C:\Sample.wav", this.WaveSource.WaveFormat);

        this.WaveSource.StartRecording();
    }

    private void StopRecording() {
        this.WaveSource.StopRecording();
    }

    void WaveSourceDataAvailable(object sender, WaveInEventArgs e) {
        if (this.WaveFile != null) {
            this.WaveFile.Write(e.Buffer, 0, e.BytesRecorded);
            this.WaveFile.Flush();
        }
    }

    void WaveSourceRecordingStopped(object sender, StoppedEventArgs e) {
        if (this.WaveSource != null) {
            this.WaveSource.Dispose();
            this.WaveSource = null;
        }

        if (this.WaveFile != null) {
            this.WaveFile.Dispose();
            this.WaveFile = null;
        }
    }

InformationsquelleAutor Sarin Vadakkey Thayyil | 2015-05-07

Schreibe einen Kommentar