JavascriptProva

martedì 8 gennaio 2019

Due suoni contemporaneamente

Public Class Form1
    Dim fileName As String
    Dim fileName2 As String
    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_1(ByVal sender As System.Object,
    ByVal e As System.EventArgs) Handles Button1.Click

        Dim T As New Threading.Thread(AddressOf MioThread)
        T.Start()




    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        fileName = "C:\suoni\alba.wav"
        mciSendString("open " & fileName & " type mpegvideo alias SecondSound", String.Empty, 0, 0)
        mciSendString("play SecondSound", String.Empty, 0, 0)
        Threading.Thread.Sleep(100)
    End Sub

    Sub MioThread()
        fileName2 = "C:\suoni\fanculo.mp3"
        mciSendString("open " & fileName2 & " type mpegvideo alias FirstSound", String.Empty, 0, 0)
        mciSendString("play FirstSound", String.Empty, 0, 0)
        Threading.Thread.Sleep(100)
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
End Class

Un problema di thread che non era di thread: files sonori di sottofondo

Creo il codice del thread:
    Sub MioThread()
        My.Computer.Audio.Play("C:\suoni\accord.wav",
        AudioPlayMode.BackgroundLoop)
    End Sub
e gli faccio eseguire il codice del suonare la musica di sottofondo.



Alla fine ho risolto il problema. I thread non c'entrano nulla, in questo caso:
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        My.Computer.Audio.Play("C:\suoni\accord.wav",
        AudioPlayMode.BackgroundLoop)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If DirectCast(sender, Button).Text <> "PUGNO" Then
            DirectCast(sender, Button).Text = "PUGNO"
        Else
            DirectCast(sender, Button).Text = "SCORREGGIA"
        End If
    End Sub


End Class