|
|
(10 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | Il componente ''gb.sdl.sound'' permette di riprodurre anche i file Midi in Gambas mediante la sua Classe ''Music''.
| + | #REDIRECT [[Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio]] |
− | | |
− | E' inoltre necessario aver installato il file banco di suoni di default di Timidity: "''/usr/share/sounds/sf2/<FONT color=#B22222>TimGM6mb.sf2</font>''", oppure di FluidSynth: "''/usr/share/sounds/sf2/<FONT color=#B22222>FluidR3_GM.sf2</font>''".
| |
− | | |
− | | |
− | ==Uso della Classe ''Music''==
| |
− | La classe '''''Music''''' consente di ascoltare <Span style="text-decoration:underline">un solo</span> file Midi per volta.
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | With <FONT color=#B22222>Music</font>
| |
− | .Load("''percorso/del/file.mid''")
| |
− | .Play()
| |
− | End With
| |
− | | |
− | | |
− | ==Indicazione del tempo trascorso di un file Midi==
| |
− | La classe "''Music''" consente di verificare il tempo trascorso dall'inizio dell'escuzione di un file Midi mediante l'uso del metodo "''Pos''".
| |
− | Sarà sufficiente utilizzare un ''Timer'', ed andare a vedere ogni tot millisecondi il valore che restituisce il metodo "''Pos''".
| |
− | Ciò consentirà di applicare una ''ProgressiveBar'' o uno ''Slider'' per indicare, appunto, il tempo trascorso.
| |
− | Quando il brano sarà terminato, ''Pos'' restituirà un valore zero; e pertanto si saprà così che il brano è terminato.
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | With Music
| |
− | .Load("''/percorso/del/file.mid''")
| |
− | .Play()
| |
− | End With
| |
− |
| |
− | <FONT color=#006400>' ''Facciamo partire il Timer con ritardo di ms 300''</font>
| |
− | With Timer1
| |
− | .Delay = 300
| |
− | .Start()
| |
− | End With
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Timer1_Timer()
| |
− |
| |
− | With Music
| |
− | Print .Pos
| |
− |
| |
− | <FONT color=#006400>' ''Se "Pos" ci restituisce zero allora fermiamo il Timer:''</font>
| |
− | If .pos = 0 Then
| |
− | Timer1.Stop
| |
− | <FONT color=#006400>' ''Fermeremo anche, se inseriti, l'avanzamento di una "ProgressiveBar" o di uno "Slider":''
| |
− | ''ProgressiveBar1.Value = 0''</font>
| |
− | Endif
| |
− | End With
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | | |
− | ==Indicazione dello Stato==
| |
− | La proprietà ''.State'' della Classe ''Music'' ci informa lo stato della risorsa, restituendo un intero.
| |
− | Music.State As Integer
| |
− | Se il valore ritornato è 1, allora la risorsa sta eseguendo il file Midi; se il valore ritornato è zero, allora il suo ''stato'' è "''fermo''".
| |