2013-01-31 54 views
0

我正在使用函數來返回一個字符串,其中包含我想要播放的* .wav文件的路徑。在播放wav文件時遇到問題vb網絡

下面是用於確定聲音時,用戶點擊的東西,等播放功能...

Function GetSoundPath() As String 
    Dim theme As String, appPath As String, soundPath As String 
    theme = GetUserTheme() 
    appPath = LCase(Application.StartupPath & "\themes\" & theme & "\sounds\click.wav") 

    Return soundPath 

End Function 

上述功能得到正確的路徑需要播放的* .wav文件。問題是,當我用「My.Computer.Audio.Play(GetSoundPath)」使用我的功能時,出現以下錯誤提示:

創建窗體時發生錯誤。有關詳細信息,請參閱Exception.InnerException。錯誤是:在構造期間從默認實例引用的表單,導致無限遞歸。在表單的構造函數中引用使用「我」的表單。

我已經檢查了application.vb文件,沒有引用我的表單,因爲它的名字「wisealarm」被發現。該表格被稱爲「我」,因爲它應該是。更奇怪的是,當我手動鍵入命令中的路徑時,它的工作沒有問題.. e.x. My.Computer.Audio.Play(「c:\ users \ sound.wav」)

任何洞察力將不勝感激。如果需要進一步的代碼或細節,請讓我知道。謝謝。

+0

你在哪裏設置'soundPath'來返回一個有意義的值? – SeanC

+0

查看異常的堆棧跟蹤,尤其是InnerException異常。如果這沒有幫助,然後張貼在你的問題。 –

回答

0

在窗體的初始化中會導致錯誤,例如類的初始化。如果在此函數中發生錯誤,您可以將該調用(或使用「New」初始化)移到Dim(或等價)語句之外,以進行更正常的調試。這可能在form_load函數中。

此外,你正在返回一個未定義的變量SoundPath - 也許你應該用賦值語句中的SoundPath替換appPath。