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.
È necessario attivare anche il Componente gb.media.

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