2017-03-16 5 views
0

Ich mache ein Programm für die Aufnahme von Audio.FileNotFoundException Ausnahme auf My.Computer.Audio.Play

Code:

Imports System.Runtime.InteropServices 

Public Class Form1 

    Private Declare Function record Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

     record("open new Type waveaudio Alias recon", "", 0, 0) 
     record("record recon", "", 0, 0) 
    End Sub 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     record("save recon c:\mic.wav", "", 0, 0) 
     record("close recon", "", 0, 0) 
    End Sub 

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
     My.Computer.Audio.Play("c:\mic.wav", AudioPlayMode.Background) 
    End Sub 
End Class 

Fehler tritt auf der Leitung My.Computer.Audio.Play("c:\mic.wav", AudioPlayMode.Background):

FileNotFoundException wurde nicht behandelt Bitte achten Sie darauf, eine Sounddatei an der angegebenen Stelle vorhanden ist.

+2

Ist die Datei existiert in C sehen: \ mic.wav – Bugs

+0

Nein, als ich im Internet gelesen werden, da dieser Code mic.wav automatischen Erstellen und dann spielen es –

+4

Dies ist Code aus dem vorherigen Jahrhundert. Ähnlich verhält es sich, das Verzeichnis C: \ ist durch UAC geschützt. Also Button2 wird nicht funktionieren, Sie können nicht herausfinden, weil Sie den Rückgabewert von MciSendString() ignorieren. Button3 ist daher zum Scheitern verurteilt. Wählen Sie ein besseres Verzeichnis und eine [korrekte Deklaration] (http://pinvoke.net/default.aspx/winmm/mciSendString.html) und fügen Sie die * erforderliche * Fehlermeldung hinzu. –

Antwort

0

Das ist für mich funktioniert es versuchen und

Public Class Form1 

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Button1.Enabled = False 

    Button2.Enabled = True 

    mciSendString("open new Type waveaudio Alias recsound", "", 0, 0) 

    mciSendString("record recsound", "", 0, 0) 

    Label1.Text = "Recording..." 

    Label1.Visible = True 

End Sub 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 

    Button1.Enabled = True 

    Button2.Enabled = False 

    Button3.Enabled = True 

    mciSendString("save recsound c:\recsound.wav", "", 0, 0) 

    mciSendString("close recsound", "", 0, 0) 

    MsgBox("File Created: C:\recsound.wav") 

    Label1.Text = "Stopped..." 

    Label1.Visible = False 

    My.Computer.Audio.Stop() 

End Sub 

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 

    Label1.Text = "Playing..." 

    Label1.Visible = True 

    My.Computer.Audio.Play("c:\recsound.wav", AudioPlayMode.Background) 

End Sub 

End Class 
+0

Derselbe Fehler in diesem Code –

Verwandte Themen