Differenze tra le versioni di "Estrarre informazioni da un file MP3 con le funzioni esterne del API di Smpeg"

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
La libreria di SMPEG consente di gestire file ''mpeg'', come estrarre informazioni di carattere generale relative al file.
 
La libreria di SMPEG consente di gestire file ''mpeg'', come estrarre informazioni di carattere generale relative al file.
  
Per poter utilizzare le risorse della libreria ''Smpeg'' è necessario richiamare nell'applicazione Gambas la libreria (nella sua attuale versione): ''libsmpeg-0.4.so.0.1.4''
+
Per poter utilizzare le risorse della libreria ''Smpeg'' è necessario richiamare nell'applicazione Gambas la libreria condivisa "''libsmpeg-0.4.so.0.1.4'' " oppure la libreria "''libsmpeg2-2.0.so.0.0.0'' ".
  
  
 
Mostriamo di seguito un semplice codice per estrarre le informazioni generali di un file audio mp3:
 
Mostriamo di seguito un semplice codice per estrarre le informazioni generali di un file audio mp3:
 +
Library "libsmpeg-0.4:0.1.4"  <FONT color=gray>' ''oppure: '''''libsmpeg2-2.0:0.0.0'''"</font>
 +
 
  Public Struct SMPEG_Info
 
  Public Struct SMPEG_Info
 
   has_audio As Integer
 
   has_audio As Integer
Riga 19: Riga 21:
 
   total_time As Float
 
   total_time As Float
 
  End Struct
 
  End Struct
 
Library "libsmpeg-0.4:0.1.4"
 
 
   
 
   
 
  Private Const audio As Integer = 1
 
  Private Const audio As Integer = 1
Riga 33: Riga 33:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim info As New SMPEG_Info
 
   Dim info As New SMPEG_Info
Riga 39: Riga 39:
 
   Dim percorsoFile As String
 
   Dim percorsoFile As String
 
   
 
   
 +
  percorsoFile = "<FONT color=darkgreen>''/percorso/del/file.mp3''</font>"
 
   
 
   
  percorsoFile = "''/percorso/del/file.mp3''"
+
  smpeg = SMPEG_new(percorsoFile, info, audio)
 
  smpeg = SMPEG_new(percorsoFile, info, audio)
 
 
   
 
   
  With info
+
  With info
 
     If .has_audio = 0 Then Error.Raise("Errore: il file caricato non è un file audio !")
 
     If .has_audio = 0 Then Error.Raise("Errore: il file caricato non è un file audio !")
 
     Print "File audio: "; File.Name(percorsoFile)
 
     Print "File audio: "; File.Name(percorsoFile)
 
     Print "Caratteristiche principali: "; .audio_string.ToString()
 
     Print "Caratteristiche principali: "; .audio_string.ToString()
 
     Print "Dimensione del file audio: "; .total_size; " byte"
 
     Print "Dimensione del file audio: "; .total_size; " byte"
     Print "Durata del brano: "; Date(0, 0, 0, 0, 0, 0, .total_time * 1000)
+
     Print "Durata del brano: "; Time(0, 0, 0, .total_time * 1000)
 
   End With
 
   End With
 
   
 
   
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
  <FONT color=gray>' ''Va in chiusura:''</font>
  SMPEG_delete(smpeg)
+
  SMPEG_delete(smpeg)
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 19:01, 13 gen 2024

La libreria di SMPEG consente di gestire file mpeg, come estrarre informazioni di carattere generale relative al file.

Per poter utilizzare le risorse della libreria Smpeg è necessario richiamare nell'applicazione Gambas la libreria condivisa "libsmpeg-0.4.so.0.1.4 " oppure la libreria "libsmpeg2-2.0.so.0.0.0 ".


Mostriamo di seguito un semplice codice per estrarre le informazioni generali di un file audio mp3:

Library "libsmpeg-0.4:0.1.4"   ' oppure: libsmpeg2-2.0:0.0.0"

Public Struct SMPEG_Info
  has_audio As Integer
  has_video As Integer
  width As Integer
  height As Integer
  current_frame As Integer
  current_fps As Float
  audio_string[80] As Byte
  audio_current_frame As Integer
  current_offset As Integer
  total_size As Integer
  current_time As Float
  total_time As Float
End Struct

Private Const audio As Integer = 1

' SMPEG* SMPEG_new(const char *file, SMPEG_Info* info, int sdl_audio)
' Create a new SMPEG object from an MPEG file. This function returns a new SMPEG object.
Private Extern SMPEG_new(file$ As String, infoP As SMPEG_Info, sdl_audio As Integer) As Pointer

' void SMPEG_delete( SMPEG* mpeg )
' Delete an SMPEG object
Private Extern SMPEG_delete(mp As Pointer)


Public Sub Main()

 Dim info As New SMPEG_Info
 Dim smpeg As Pointer
 Dim percorsoFile As String

 percorsoFile = "/percorso/del/file.mp3"

 smpeg = SMPEG_new(percorsoFile, info, audio)

 With info
   If .has_audio = 0 Then Error.Raise("Errore: il file caricato non è un file audio !")
   Print "File audio: "; File.Name(percorsoFile)
   Print "Caratteristiche principali: "; .audio_string.ToString()
   Print "Dimensione del file audio: "; .total_size; " byte"
   Print "Durata del brano: "; Time(0, 0, 0, .total_time * 1000)
 End With

' Va in chiusura:
 SMPEG_delete(smpeg)

End