Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente G...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
Os dejo este mi codigo para ejecutar un archivos audio MP3 con la Clase "Music" del Componente "gb.sdl2.audio" y con la ayuda de la libreria "libmpeg3" para obtener la duración del archivo mp3.
Hace falta activar el Componente "gb.sdl2.audio" y tener instalada en el sistema la libreria "libmpeg3.so.2.1.8".
Library "libmpeg3:2.1.8"

' mpeg3_t* mpeg3_open(char *path, int *error_return)
' Open the MPEG stream.
Private Extern mpeg3_open(path As String, error_return As Pointer) As Pointer
 
' long mpeg3_audio_samples(mpeg3_t *file, int stream)
Private Extern mpeg3_audio_samples(mpeg3file As Pointer, _stream As Integer) As Long

' int mpeg3_sample_rate(mpeg3_t *file, int stream)
Private Extern mpeg3_sample_rate(mpeg3file As Pointer, _stream As Integer) As Integer

' int mpeg3_close(mpeg3_t *file)
' Close the MPEG stream.
Private Extern mpeg3_close(mpeg3file As Pointer) As Integer


Public Sub Main()

  Dim mp3 As Pointer
  Dim perc As String
  Dim camp As Long
  Dim freq, i As Integer
  Dim s As Single
  Dim tmp As Date
  
  perc = "/ruta/del/archivo.mp3"
 
  mp3 = mpeg3_open(perc, 0)
 
  camp = mpeg3_audio_samples(mp3, 0)
  
  freq = mpeg3_sample_rate(mp3, 0)

' Obtiene la duración del archivo mp3:
  s = camp / freq
 
  Print "Duración del archivo: "; Date(0, 0, 0, 0, 0, 0, s * 1000)
      
  Music.Load(perc)
  Music.Play

  tmp = Now

  Repeat
    i = DateDiff(tmp, Now, gb.Second)
    Write "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i * 1000)
  Until i >= s

' Cuando la ejecución termina, el programa libera la memoria anteriormente ocupada y se cierra:
  mpeg3_close(mp3)

End

 



 
última edición por vuott el Sabado, 30 Noviembre 2019, 01:08; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
Gracias Vuott, seguramente lo use para el programa que hice hace un tiempo llamado Vinilo que esta algo desactualizado.
una consulta, ¿Como se pueden saber todas las variables disponibles en la librería?
Por ejemplo, si quisiera extraer el nombre del artista o el disco o mas datos, ¿Como se que cosas puede devolver la librería ?
Un saludo
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
tincho escribió: [Ver mensaje]
si quisiera extraer el nombre del artista o el disco o mas datos

Para extraer los TAG de un archivo mp3...

https://www.gambas-it.org/wiki/inde...PI_di_Libspctag
https://www.gambas-it.org/wiki/inde...l_API_di_Id3tag
https://www.gambas-it.org/wiki/inde...API_di_Libtag_c
https://www.gambas-it.org/wiki/inde...el_API_di_Avbin
https://www.gambas-it.org/wiki/inde...zioni_di_Gambas
https://www.gambas-it.org/wiki/inde...PI_di_libmpg123
https://www.gambas-it.org/wiki/inde..._del_API_di_VLC
 



 
última edición por vuott el Domingo, 01 Diciembre 2019, 17:57; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
vuott escribió:  
tincho escribió:  
si quisiera extraer el nombre del artista o el disco o mas datos

Para extraer los TAG de un archivo mp3...

https://www.gambas-it.org/wiki/inde...PI_di_Libspctag
https://www.gambas-it.org/wiki/inde...l_API_di_Id3tag
https://www.gambas-it.org/wiki/inde...API_di_Libtag_c
https://www.gambas-it.org/wiki/inde...el_API_di_Avbin
https://www.gambas-it.org/wiki/inde...zioni_di_Gambas
https://www.gambas-it.org/wiki/inde...PI_di_libmpg123
https://www.gambas-it.org/wiki/inde..._del_API_di_VLC

Muchas gracias de nuevo, una información muy útil la que pasas.
Pero.. cuando usas una librería externa desde gambas ¿Como sabes que "comandos" puedes usar?
Por ejemplo, en el uso de mpg123 hay una serie de ordenes:
Citar:

Private Extern mpg123_close(mh As Pointer) As Integer
Private Extern mpg123_delete(mh As Pointer)
Private Extern mpg123_exit()
Private Extern mpg123_id3(mh As Pointer, v1 As Pointer, v2 As Pointer) As Integer
Private Extern mpg123_init() As Integer
Private Extern mpg123_meta_check(mh As Pointer) As Integer
Private Extern mpg123_new(decoder As String, errorI As Pointer) As Pointer
Private Extern mpg123_open(mh As Pointer, pathFile As String) As Integer
Private Extern mpg123_scan(mh As Pointer) As Integer
Private Extern mpg123_strerror(mh As Pointer) As String

¿Como sabes que existe algo como mpg123_strerror?
¿Hay una lista en alguna parte de todas las "ordenes" disponibles de cada librería?
¿Hay que remitirse al código fuente?
Mi pregunta es general, es para todas las librerías.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
tincho escribió:  

¿Como sabes que existe algo como mpg123_strerror?
¿Hay una lista en alguna parte de todas las "ordenes" disponibles de cada librería?

Bueno, para conocer los recursos (variables, Estructuras, Funciones, etc...) de una libreria externa, escrita en C, hace falta buscar su file "Header" (xxxx.h), porqué en este archivo están los símbolos, identificadores de los recursos de la libreria.
Una libreria puede tener uno o más archivos header.
Normalmente el archivo de cabecera de una libreria se encuentra en la carpeta de sistema: /usr/include
Por ejemplo, puedes encontrar los file header de mpeg3 en la carpeta: /usr/include/mpeg3 .
 



 
última edición por vuott el Lunes, 02 Diciembre 2019, 00:36; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Audio MP3 Con La Clase "Music" Del Componente Gb.sdl2.audio Y Con La Ayuda De La Libreria "libmpeg3" 
 
vuott escribió: [Ver mensaje]
tincho escribió: [Ver mensaje]

¿Como sabes que existe algo como mpg123_strerror?
¿Hay una lista en alguna parte de todas las "ordenes" disponibles de cada librería?

Bueno, para conocer los recursos (variables, Estructuras, Funciones, etc...) de una libreria externa, escrita en C, hace falta buscar su file "Header" (xxxx.h), porqué en este archivo están los símbolos, identificadores de los recursos de la libreria.
Una libreria puede tener uno o más archivos header.
Normalmente el archivo de cabecera de una libreria se encuentra en la carpeta de sistema: /usr/include
Por ejemplo, puedes encontrar los file header de mpeg3 en la carpeta: /usr/include/mpeg3 .

Perfecto, era eso, muchas gracias Vuott
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Un Detalle Con El Insert Into Gambas Value... jousseph Bases de Datos 5 Domingo, 04 Noviembre 2012, 20:58 Ver último mensaje
Shell
No hay nuevos mensajes [C] Ejecutar Archivos Audio, Midi Y Video ... vuott C/C++ 3 Martes, 11 Agosto 2015, 13:21 Ver último mensaje
shordi
No hay nuevos mensajes Ejecutar Archivos Wav Con Las Librerías &... vuott Aplicaciones/Fragmentos de Código 4 Miercoles, 21 Octobre 2015, 15:16 Ver último mensaje
vuott
No hay nuevos mensajes Al Ejecutar Shell ("sudo Date -s '&qu... Oscar Peralta Controles/Librerías/Componentes 2 Viernes, 05 Enero 2018, 19:14 Ver último mensaje
tercoIDE
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario