Eseguire un file audio o Midi quando si clicca sulla MapView

Da Gambas-it.org - Wikipedia.

Cliccando sulla MapView è possibile eseguire un file audio o un file Midi.

Mostriamo un esempio pratico, nel quale l'esecuzione sonora perdurerà per il solo tempo in cui si cliccherà sulla MapView, mantenendo premuto il tasto del mouse premuto: al suo rilascio l'esecuzione cesserà.

Private MapView1 As MapView
Private mpt As New MapPoint(41.89018, 12.49230)
Private mp As MediaPlayer


Public Sub Form_Open()

 With Me
   .W = Screen.AvailableWidth
   .H = Screen.AvailableHeight
   .Arrangement = Arrange.Fill
 End With

 With MapView1 = New MapView(Me) As "MapView1"
   .Map.AddTile("GoogleMap", "https://mt0.google.com/vt/lyrs=s&hl=&x={x}&y={y}&z={z}")
   .Map.Zoom = 15
   .Map.Center = mpt
 End With

' Crea un Oggetto "MediaPlayer" per eseguire il audio:
 With mp = New MediaPlayer
  .URL = Media.URL("/percorso/del/file/audio o Midi")
' Imposta il Controllo ove cliccare per far eseguire l'audioe:
  .SetWindow(MapView1)
 End With
 
End

Public Sub MapView1_MouseDown()  ' Se si clicca sulla "MapView", sarà eseguito l'audio

 Dim pt As New Point(Mouse.X, Mouse.Y)

 mpt = MapView1.Map.PixelToMapPointRel(pt)

' Imposta il Controllo "MediaPlayer", e la posizione sulla "MapView" ove si eseguirà l'audio:
 mp.SetWindow(MapView1, MapView1.Map.MapPointToPixelRel(mpt).X, MapView1.Map.MapPointToPixelRel(mpt).Y)

' Esegue il file audio o Midi:
 mp.Play()

End

Public Sub MapView1_MouseUp()

' Consente la cessazione del file audio o Midi:
 With mp
   .Stop
   .Close
 End With

' Determina la pulitura della "MapView" e pertanto la cessazione del file audio o Midi:
 MapView1.Refresh

End