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 l'audio:
 With mp = New MediaPlayer
  .URL = Media.URL("/percorso/del/file/audio o Midi")
' Imposta il Controllo ove cliccare per far eseguire l'audio:
  .SetWindow(MapView1)
 End With
 
End

Public Sub MapView1_MouseUp()

' Se si clicca con il tasto destro del mouse sulla mappa, si avvia l'esecuzione o l'arresto dell'audio:
 If Not Mouse.Right Then Return

 If mp.State == Media.Playing Then
   mp.Stop
   mp.Close
' Determina la pulitura della "MapView" e pertanto la cessazione dell'esecuzione del file audio o Midi:
   MapView1.Refresh
 Else
   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()
 Endif

End