Differenze tra le versioni di "Eseguire un file audio mediante l'oggetto MediaView del componente gb.media.form"

Da Gambas-it.org - Wikipedia.
Riga 33: Riga 33:
 
   ob = MediaView1.Children[0]
 
   ob = MediaView1.Children[0]
 
   ob = ob.Children[0]
 
   ob = ob.Children[0]
   ob = ob.Children[2]
+
   ob = ob.Children[3]
 
    
 
    
 
   With bt = New Button(ob.Children[3]) As "Apri"
 
   With bt = New Button(ob.Children[3]) As "Apri"
Riga 56: Riga 56:
 
    
 
    
 
  '''End'''
 
  '''End'''
 
 
 
==Consentire la ripetizione dell'esecuzione del medesimo file audio==
 
Attualmente, quando l'esecuzione di un file audio termina, non è possibile, premendo sull'apposito tasto di avvio, la ri-esecuzione del medesimo brano; si dovrà invece prima premere sul tasto di arresto e solo dopo si potrà ripetere l'esecuzione del file audio appena ascoltato. Ciò avviene, poiché la procedura di esecuzione del file non viene terminata con la fine del file audio.
 
 
Si potrà ovviare a questo problema, utilizzando il seguente codice, con il quale verrà imposto al evento ''_Click()'' del tasto di avvio il metodo ''.Stop()'' per l'arresto forzato della procedura di esecuzione del file audio.
 
Private bt As Button
 
Private plobs As Observer
 
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  '''Public''' Sub Apri_Enter()
 
  Dim ob As Object
 
 
 
  ob = MediaView1.Children[0]
 
  ob = ob.Children[0]
 
  ob = ob.Children[2]
 
  plobs = New Observer(ob.Children[0]) As "Play"
 
 
  With bt = New Button(ob.Children[3]) As "Aprire"
 
    .X = 10
 
    .Y = 5
 
    .W = 40
 
    .H = 20
 
    .Text = "Apri..."
 
    .Border = Border.None
 
  End With
 
 
'''End'''
 
 
 
 
'''Public''' Sub Aprire_Click()
 
 
  MediaView1.Stop
 
 
  With Dialog
 
    If .OpenFile() Then Return
 
    MediaView1.URL = .Path
 
  End With
 
 
 
'''End'''
 
 
 
'''Public''' Sub Aprire_Enter()
 
 
   
 
   
 
   bt.Border = Border.Plain
 
   bt.Border = Border.Plain
Riga 107: Riga 65:
 
   
 
   
 
   
 
   
  '''Public''' Sub Aprire_Leave()
+
  '''Public''' Sub Apri_Leave()
 
   
 
   
 
   bt.Border = Border.None
 
   bt.Border = Border.None
 
    
 
    
'''End'''
 
 
 
'''Public''' Sub Play_Click()
 
 
  MediaView1.Stop
 
 
 
  '''End'''
 
  '''End'''

Versione delle 12:39, 8 mar 2018

Il componente gb.media.form (da attivare congiuntamente con il componente gb.media) fornisce l'oggetto MediaView che consente di eseguire agevolmente un file audio.

Come gli altri oggetti esso può essere posto sul Form dalla scheda Media nell'area dedicata agli oggetti nell'IDE di Gambas, oppure creato da codice. Esso sarà visibile sul Form alle coordinate e con le dimensioni prescelte.

Il file audio potrà essere caricato mediante la proprietà .URL dell'oggetto MediaView, e successivamente essere eseguito, posto in pausa e fermato agendo manualmente con il puntatore del mouse sui tasti virtuali che riproducono quelli consueti di un riproduttore audio.

Mostriamo un semplicissimo esempio pratico, nel quale si presupporrà che l'oggetto MediaView sia stato posto sul Form dall'IDE di Gambas:

Public Sub Form_Open()
 
 With MediaView1
   .URL = "/percorso/del/file/audio"    
 End With

End


L'oggetto MediaView è composto, in vero, di vari oggetti, fra i quali: DrawingArea, Panel, Hbox, e qualche altro. Questi oggetti, in qualità di Figli dell'oggetto MediaView, contribuiscono a fornire le caratteristiche funzionali ed estetiche del loro oggetto Padre.

Con il codice è possibile non solo modificare molte proprietà di tali oggetti, ma anche di aggiungerne altri all'interno soprattutto di quegli oggetti, Figli dell'oggetto MediaView, che sono di per sé degli ogetti Contenitori. Quindi è possibile inserire uno o più oggetti negli oggetti Contenitori che sono a loro vollta Figli dell'oggetto MediaView.

Per poter aggiungere ulteriori oggetti all'oggetto MediaView, servendosi in vero - come abbiamo detto - dei suoi Figli Contenitori, sarà necessario individuare tali oggetti Contenitori.

In particolare, ad esempio, sarà possibile aggiungere un Button che consenta così di aprire una finestra di Dialogo, della Classe Dialog, per scegliere i file audio da far eseguire all'oggetto MediaView. In questo caso l'oggetto Contenitore, che potrà contenere adeguatamente sia dal punto di vista funzionale che estetico tale Button è a sua volta un oggetto Figlio di altro Contenitore a sua volta un oggetto Figlio di altro Contenitore.

Mostriamo di seguito un possibile codice per realizzare quanto detto:

Public Sub Form_Open()
 
 Dim ob As Object
 Dim bt As Button
  
  ob = MediaView1.Children[0]
  ob = ob.Children[0]
  ob = ob.Children[3]
  
  With bt = New Button(ob.Children[3]) As "Apri"
    .X = 10
    .Y = 5
    .W = 40
    .H = 20
    .Text = "Apri..."
  End With
  
End


Public Sub Apri_Click()
 
 Dim music1 As String
 
  With Dialog
    If .OpenFile() Then Return
    MediaView1.URL = .Path
  End With
  
End


Public Sub Apri_Enter()

  bt.Border = Border.Plain
   
End


Public Sub Apri_Leave()

  bt.Border = Border.None
 
End