Differenze tra le versioni di "Estrarre da un file WAV i soli dati audio grezzi"
Da Gambas-it.org - Wikipedia.
Riga 16: | Riga 16: | ||
File.Save("/tmp/grezzi", dati_grezzi) | File.Save("/tmp/grezzi", dati_grezzi) | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | oppure utilizzare le funzioni dei vettori di tipo ''Byte[]'': | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim fileWAV As String | ||
+ | Dim fl, ex As File | ||
+ | Dim d As Short | ||
+ | Dim bb As Byte[] | ||
+ | |||
+ | |||
+ | fileWAV = "''/percorso/del/file.wav''" | ||
+ | |||
+ | <FONT color=gray>' ''Carica un file audio Wav:''</font> | ||
+ | fl = Open fileWAV For Read | ||
+ | |||
+ | d = InStr(File.Load(fileWAV), "data") | ||
+ | |||
+ | bb = New Byte[Stat(fileWAV).Size - (d + 7)] | ||
+ | |||
+ | <FONT color=gray>' ''Spostiamo il puntatore all'interno del flusso del file'' | ||
+ | ' ''sul primo byte successivo all'header del file wav:''</font> | ||
+ | Seek #fl, d + 7 | ||
+ | bb.Read(fl, 0, Stat(fileWAV).Size - (d + 7)) | ||
+ | |||
+ | |||
+ | ex = Open "/tmp/dati_grezzi" For Create | ||
+ | |||
+ | <FONT color=gray>' ''Scrive il file contenente i soli dati audio grezzi del file Wav:''</font> | ||
+ | bb.Write(ex) | ||
+ | |||
+ | |||
+ | <FONT color=gray>' ''Va in chiusura:''</font> | ||
+ | ex.Close | ||
+ | |||
+ | fl.Close | ||
'''End''' | '''End''' |
Versione delle 04:42, 21 mar 2014
Per estrarre da un file WAV i soli dati audio grezzi unicamente mediante le funzioni di Gambas, è possibile utilizzare un codice come il seguente:
Public Sub Main() Dim percorsoFile, intero_file, dati_grezzi As String Dim n As Short percorsoFile = "/percorso/del/file.wav" intero_file = File.Load(percorsoFile) n = InStr(intero_file, "data") ' Prendiamo i soli dati audio grezzi dal file, eliminando quelli che compongono il suo "header": dati_grezzi = Right(intero_file, Len(intero_file) - n - 7) File.Save("/tmp/grezzi", dati_grezzi) End
oppure utilizzare le funzioni dei vettori di tipo Byte[]:
Public Sub Main() Dim fileWAV As String Dim fl, ex As File Dim d As Short Dim bb As Byte[] fileWAV = "/percorso/del/file.wav" ' Carica un file audio Wav: fl = Open fileWAV For Read d = InStr(File.Load(fileWAV), "data") bb = New Byte[Stat(fileWAV).Size - (d + 7)] ' Spostiamo il puntatore all'interno del flusso del file ' sul primo byte successivo all'header del file wav: Seek #fl, d + 7 bb.Read(fl, 0, Stat(fileWAV).Size - (d + 7)) ex = Open "/tmp/dati_grezzi" For Create ' Scrive il file contenente i soli dati audio grezzi del file Wav: bb.Write(ex) ' Va in chiusura: ex.Close fl.Close End