|
|
Riga 1: |
Riga 1: |
− | Va premesso che <B><FONT Color=red>attualmente il componente ''gb.sdl.sound'' è ''obsoleto''</font></b>, è stato sostituito dal componente ''[[Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio|gb.sdl2.audio]]''.
| + | #REDIRECT [[Eseguire_un_file_MIDI_mediante_il_componente_gb.sdl2.audio]] |
− | | |
− | | |
− | Ne riportiamo di seguito la pagina, che fu scritta quando il Componente era attivo, per una mera curiosità storica.
| |
− | | |
− | | |
− | ----
| |
− | | |
− | | |
− | Il componente ''gb.sdl.sound'' permette di riprodurre anche i file Midi in Gambas mediante la sua Classe ''Music'', consente di ascoltare <Span style="text-decoration:underline">un solo</span> file Midi per volta.
| |
− | | |
− | 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'' in ''ambiente grafico''==
| |
− | Mostriamo di seguito un codice essenziale per eseguire un file Midi in ambiente grafico:
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | With <FONT color=#B22222>Music</font>
| |
− | .Load("''/percorso/del/file.mid''")
| |
− | .Play()
| |
− | End With
| |
− |
| |
− | Do
| |
− | <FONT color=gray>' ''Mostra il tempo trascorso durante l'esecuzione:''</font>
| |
− | Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000))
| |
− | <FONT color=gray>' ''Un brevissima attesa consente di agire sugli eventuali oggetti posti sul Form:''</font>
| |
− | Wait 0.001
| |
− | Loop Until Music.State = Music.Stopped
| |
− |
| |
− | '''End'''
| |
− | Il ciclo, in questo caso, è applicato con il solo intento di mostrare il tempo trascorso durante l'esecuzione del file Midi.
| |
− | | |
− | | |
− | ===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''".
| |
− | | |
− | ===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''".
| |
− | | |
− | | |
− | ==Uso della Classe ''Music'' con un'applicazione ''a riga di comando''==
| |
− | In questo caso è assolutamente necessario dopo il metodo ''.Play()'' della Classe ''Music'' attivare un ciclo, che avrà termine solo quando lo status della Classe ''Music'' si troverà nella situazione rappresentata dalla costante ''Stopped'':
| |
− | '''Public''' Sub Main()
| |
− |
| |
− | With <FONT color=#B22222>Music</font>
| |
− | .Load("''/percorso/del/file.mid''")
| |
− | .Play()
| |
− | End With
| |
− |
| |
− | Do
| |
− | <FONT color=gray>' ''Mostra il tempo trascorso durante l'esecuzione:''</font>
| |
− | Print CStr(Date(0, 0, 0, 0, 0, 0, Music.Pos * 1000))
| |
− | Loop Until Music.State = Music.Stopped
| |
− |
| |
− | '''End'''
| |