2017-03-16 76 views
0

我正在制作一个录制音频的程序。My.Computer.Audio.Play上的FileNotFoundException异常

代码:在线My.Computer.Audio.Play("c:\mic.wav", AudioPlayMode.Background)发生

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 

错误:

FileNotFoundException异常是未处理 请务必声音文件存在于指定的位置。

+2

是否在文件存在C:\ mic.wav – Bugs

+0

不,我互联网上阅读,因为该代码自动创建mic.wav然后播放它 –

+4

这是上个世纪的代码。就像它一样,C:\目录受UAC保护。所以Button2将不起作用,因为您忽略了mciSendString()的返回值,所以无法找到。 Button3因此注定要失败。选择一个更好的目录和一个[正确的声明](http://pinvoke.net/default.aspx/winmm/mciSendString.html)并添加* required *错误报告。 –

回答

0

这对我的作品尝试一下,看看

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

此代码中的错误 –

相关问题