2017-08-30 1 views
2

Wie kann ich Audio von meinem Media Player mit C# winforms aufnehmen?Audio von einem Medienplayer aufnehmen

Ich versuche eine App zu erstellen, die Audio von einem Player (vlc) aufzeichnet und dann auf meinem Computer speichert.

Jede Idee wird sehr geschätzt.

+0

Prüfen Sie dies [diese] (https: // msdn.microsoft.com/en-us/library/windows/desktop/dd757161(v=vs.85).aspx) – Berkay

Antwort

1

Was meinen Sie mit Ihrem Media Player? Wenn Sie einfach mit C# arbeiten möchten, verwenden Sie einfach die winmm.dll Bibliothek.

  1. Importieren Sie den Namespace.

    mit System.Runtime.InteropServices;

  2. Deklarieren Sie die Interop-Funktion

    [DllImport ("winmm.dll" Entrypoint = "mciSendStringA", ExactSpelling = true, charset = CharSet.Ansi, SetLastError = true)]
    private static extern int Rekord (Zeichenfolge lpstrCommand, Zeichenfolge lpstrReturnString, int uReturnLength, int hwndCallback);

  3. Aufnahme starten

    Datensatz ("neue Art öffnen Alias ​​Waveaudio recsound", "", 0, 0);
    record ("rekord recsound", "", 0, 0);

  4. Aufnahme stoppen und speichern

    Datensatz in einer Datei ("recsound d sparen: \ myRecordedAudioFile.wav", "", 0, 0);
    record ("close recsound", "", 0, 0);

+0

Was ich mit Media Player meine, ist, dass ich gerne Ton aufnehmen möchte, während ich Ton von meinen Medien abspiele Spieler. –

0

Sie können NAudio verwenden, hier ist eine kurze Probe

Zwei Tasten Aufnahme und Stopp,

public WaveIn _waveIn = null; 
public WaveFileWriter fileToWrite = null; 
private void btn_record_Click(object sender, EventArgs e) { 
    _waveIn = new WaveIn(); 
    _waveIn.WaveFormat = new WaveFormat(44100, 1); 
    _waveIn.DataAvailable += _waveIn_DataAvailable; // event that keep listening mic 
    fileToWrite = new WaveFileWriter(@"C:\Users\userName\Documents\myFile.wav", _waveIn.WaveFormat); 
    _waveIn.StartRecording(); 
} 

private void _waveIn_DataAvailable(object sender, WaveInEventArgs e) { 
    if (fileToWrite != null) { 
    fileToWrite.Write(e.Buffer, 0, e.BytesRecorded); // writes bytes to the wav file 
    fileToWrite.Flush(); 
    } 
} 
private void btn_stop_Click(object sender, EventArgs e) { 
    _waveIn.StopRecording(); 
} 

Hoffnung hilft,

+0

Ich werde es versuchen –

Verwandte Themen