Differenze tra le versioni di "Estrarre informazioni generali da un file audio con le funzioni esterne del API di Sox"

Da Gambas-it.org - Wikipedia.
Riga 51: Riga 51:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Riferimenti=
 +
[1] [http://sox.sourceforge.net/libsox.html Api di Sox]
 +
<BR>[2] [http://fossies.org/dox/sox-14.4.1/index.html Api di Sox]
 +
<BR>[3] [http://sox.sourcearchive.com/documentation/14.3.1-2/main.html Documentazione di Sox]

Versione delle 18:44, 8 gen 2014

La libreria Sox contiene risorse per poter gestire ampiamente i file audio: riproduzione e registrazione, conversione di vari formati audio in altri formati, nonché applicazione di vari effetti.

Le risorse del API di Sox consentono anche di ottenere facilmente le informazioni basilari dai file audio, supportati dalla libreria Sox, richiamando l'attuale versione della libreria: libsox.so.2.0.1

Potremo procedere con un codice simile al seguente:

Public Struct sox_signalinfo_t
  rate As Float         ' sox_rate_t:  samples per second, 0 if unknown (typedef double sox_rate_t)
  channels As Integer   ' number of sound channels, 0 if unknown
  precision As Integer  ' bits per sample, 0 if unknown
End Struct

Public Struct sox_format_t
  filename As Pointer
  signal As Struct Sox_signalinfo_t
End Struct

Private sfIn As New Sox_format_t


Library "libsox:2.0.1"

Private Const SOX_SUCCESS As Byte = 0

' int sox_init(void)
' Client API: Initialize effects library. SOX_SUCCESS if successful.
Private Extern sox_init() As Integer

' sox_format_t * sox_open_read(char const *path, sox_signalinfo_t const *signal, sox_encodinginfo_t const *encoding, char const *filetype)
Private Extern sox_open_read(path As String, signalP As Pointer, encoding As Pointer, filetype As String) As Sox_format_t


Public Sub Main()

 Dim err As Integer
 Dim file_audio As String


  file_audio = "/percorso/del/file/audio"

  err = sox_init()
  If err <> SOX_SUCCESS Then Error.Raise("Impossibile inizializzare la libreria 'libsox' !")

  sfIn = sox_open_read(file_audio, Null, Null, Null)

 With sfIn
   Print "File audio: "; String@(.filename)
   Print "Frequenza di campionamento: hrz "; .signal.rate
   Print "Numero di canali: "; .signal.channels
   Print "Risoluzione campionamento: "; .signal.precision; " bit"
 End With

End


Riferimenti

[1] Api di Sox
[2] Api di Sox
[3] Documentazione di Sox