0

私は Visual Basic 2010 を使用しており、作成中のプログラムを C 言語でコーディングしています。私の問題は、Media.SoundPlayer をセットアップしていて、フォームがロードされたときにアクティブにしてコードが見えるようにしたいことです。このように (編集: このコードは動作しません。サウンドはデバッグでロード時に再生されず、エラーは発生しません)

Private Sub BGMusic(ByVal x As Integer)
        Dim msp As New Media.SoundPlayer
        Dim Music As String = Install + "\Music\innmusic.wav"
        msp.SoundLocation = Music
        If x = 1 Then
            msp.Play()
        Else
            msp.Stop()
        End If
    End Sub

Private Sub Innmenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            BGMusic(1)
    End Sub

また、Install + "\Music\innmusic.wav" は有効なパスであることに注意してください。これは、BGMusic(1) を実行するボタンを設定して、音楽も再生できるためです。私の目的では、form.shownは機能しますが、将来のプログラムで何が問題なのかを知りたいので、form.loadを使用できます

4

1 に答える 1

0

Install宣言した場所に表示されなかった変数が空であるか、適切に初期化されていない可能性があります。以下に図を示します。

Public Class Innmenu

Dim Install As String = ""

Private Sub Innmenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    BGMusic(1) ' It will not play because Install is still empty
End Sub

Private Sub BGMusic(ByVal x As Integer)
    Dim msp As New Media.SoundPlayer
    Dim Music As String = Install + "\Music\innmusic.wav"
    msp.SoundLocation = Music
    If x = 1 Then
        msp.Play()
    Else
        msp.Stop()
    End If
End Sub


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

Install = "C:\" 'Let us assume that your folder Music and file innmusic.wav is in C:
BGMusic(1) ' Music will now play because Install has now the right value assigned

End Sub

Try Catchちなみに、次のような方法でやってみてくださいBGMusic

Private Sub BGMusic(ByVal x As Integer)
    Dim msp As New Media.SoundPlayer
    Dim Music As String = Install + "\Music\innmusic.wav"
    msp.SoundLocation = Music

    Try
       If x = 1 Then
        msp.Play()
       Else
        msp.Stop()
       End If

    Catch ex As Exception
        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try

End Sub

エラーがある場合は、エラーに関するフィードバックを得るために。

于 2013-07-08T02:53:36.403 に答える