Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
Obtener Informaciones De Un Archivo Audio OggVorbis
Para los mis hermanos neo-latinos dejo este codigo para obtener informaciones de un archivo audio OggVorbis, usando los recursos de la libreria externaI de "libvorbisfile.so".
' int ov_fopen(const char *path,OggVorbis_File *vf) ' Initializes an OggVorbis_File structure PrivateExtern ov_fopen(path AsString, vf AsByte[])AsInteger
' vorbis_info *ov_info(OggVorbis_File *vf,int link) ' Returns the vorbis_info struct for the specified bitstream. PrivateExtern ov_info(vf AsByte[], olink AsInteger)As Vorbis_info
' ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i) ' Returns the total (compressed) bytes. PrivateExtern ov_raw_total(vf AsByte[], i AsInteger)AsLong
' ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i) ' Returns the total pcm samples. PrivateExtern ov_pcm_total(vf AsByte[], i AsInteger)AsLong
' double ov_time_total(OggVorbis_File *vf,int i) ' Returns the total time in seconds. PrivateExtern ov_time_total(vf AsByte[], i AsInteger)AsFloat
' vorbis_comment *ov_comment(OggVorbis_File *vf,int link) ' Returns a pointer to the vorbis_comment struct for the specified bitstream. PrivateExtern ov_comment(vf AsByte[], olink AsInteger)As Vorbis_comment
Para los mis hermanos neo-latinos dejo este codigo para obtener informaciones de un archivo audio OggVorbis, usando los recursos de la libreria externaI de "libvorbisfile.so".
' int ov_fopen(const char *path,OggVorbis_File *vf) ' Initializes an OggVorbis_File structure PrivateExtern ov_fopen(path AsString, vf AsByte[])AsInteger
' vorbis_info *ov_info(OggVorbis_File *vf,int link) ' Returns the vorbis_info struct for the specified bitstream. PrivateExtern ov_info(vf AsByte[], olink AsInteger)As Vorbis_info
' ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i) ' Returns the total (compressed) bytes. PrivateExtern ov_raw_total(vf AsByte[], i AsInteger)AsLong
' ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i) ' Returns the total pcm samples. PrivateExtern ov_pcm_total(vf AsByte[], i AsInteger)AsLong
' double ov_time_total(OggVorbis_File *vf,int i) ' Returns the total time in seconds. PrivateExtern ov_time_total(vf AsByte[], i AsInteger)AsFloat
' vorbis_comment *ov_comment(OggVorbis_File *vf,int link) ' Returns a pointer to the vorbis_comment struct for the specified bitstream. PrivateExtern ov_comment(vf AsByte[], olink AsInteger)As Vorbis_comment
una sugerencia, poner el link al archivo fuente c++ de la librería.
estos ejemplos que vos pones están bueno por el tema de conectarse a librerías no de gambas.
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Obtener Informaciones De Un Archivo Audio OggVorbis
v3ctor:
Citar:
estos ejemplos que vos pones están bueno por el tema de conectarse a librerías no de gambas.
Vuott:
Citar:
No comprendo lo que quieres decir.
Seguro que lo entendiste. Pues por ser breve, que es bueno que desde gambas se puedan acceder a recursos
de otros lenguajes que no son del propio Gambas.
A mi me gustaría que fueran desde el propio gambas. Pero esto habría que verlo desde distintos puntos de vista.
- "El recurso". ( Como algo general)
- La forma desde la que accedemos.
Si lo comparásemos con la cocina.
- Podíamos tener los ingredientes.
- Las forma de llegar a hacer algo según el cocinero y su manera de preparar el plato.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
A mi me gustaría que fueran desde el propio gambas. Pero esto habría que verlo desde distintos puntos de vista.
Tenemos que recuerdar que los "Componentes" de gambas, son realizados a partir de librerias escritas en C o C++.
Cuando nosotros usamos los recursos de los Componientes gambas, por ejemplo gb.qt4, nosotros creemos de utilizar un recurso exclusivamente "gambas", ... y en cambio nosotros usamos recursos, escritos en lenguaje C o C++, a través de un "medio" que se llama "gambas".
Yo tambien usaré un ejemplo práctico:
cuando somos a la guía de un coche, para cambiar dirección nosotros no actuamos directamente en las ruedas, sino en aparatos e instrumentos (como el volante), y sólo de esta manera, indirectamente, en las ruedas.
Actualmente, Gambas no tiene un Componente que utiliza directamente las librerias de Ogg-Vorbis, y por esto nosotros solo podemos...:
1) realizar un nuestro nuevo Componente partendo de las librerias de Ogg-Vorbis. Este Componente luego debe ser instalado en el nuestro sistema. Asì podemos usar libreria de Ogg-Vorbis de manera gambera.
2) o utilizar un recurso "de" gambas... "gambero", "desde el proprio gambas" (como has dicho), que se llama Extern, para usar las funciones externas de Ogg-Vorbis.
De nuevo: perdonad, no comprendo el problema....
De todas formas, conociendo la estructura interior de un archivo, podemos usar - en y para este caso - solo recursos "gambas":
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Obtener Informaciones De Un Archivo Audio OggVorbis
Vuott:
Tenemos componentes hechos en C/C++ y otros hechos en Gambas.
Que por medio de un método se llame a una función en C/C++ que esta dentro de un componente hecho en este lenguaje,
pues es de lo más corriente.
A ver si ahora no estamos programando en gambas y solo estamos llamando a C/C++.
Citar:
De nuevo: perdonad, no comprendo el problema....
Demasiado "C/C++" por lo que veo...mucho empacho.
Citar:
De todas formas, conociendo la estructura interior de un archivo, podemos usar - en y para este caso - solo recursos "gambas":
Cuanta cadena en gambas. Mucho más breve en "C", las llamadas a "C/C++" deben ser lo más precisa y contadas o el maligno te robará el alma!.
( Es que seria más "C" que gambas ).
Pero mira que son raras las funciones externas.
Como diría "Marcelino". Al pan pan y al vino vino.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
Re: Obtener Informaciones De Un Archivo Audio OggVorbis
Vuott:
Citar:
Realmente creéis que, al llamar una función externa con Extern, estamos programando en C ?
Tan solo es una manera de llegar a un recurso que el lenguaje propiamente el solo no puede y usa
otros medios. Programando en gambas, claro.
Se diferencia de Shell o Exec. Extern no suelo usarlo mucho. Alguna practica por curiosidad, pero
esto va junto a "C". Como curiosidad esta bien. Pero para un gambero que no conoce "C" pues
no sabe ni que existe esos métodos del lenguaje "C". ( De una librería concreta de este ).
Particularmente prefiero hacerlo en "C". Es que primero necesitaría hacerlo en este como punto de partida.
P.d ¿ Para cuando el exorcismo ?. A ver si logramos sacar ese demonio del "C"...
Fiesta de la espuma, fiesta de la espuma!.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
Re: Obtener Informaciones De Un Archivo Audio OggVorbis
Toda esta discusión sobre el empleo de "Extern" (recurso degambas) con funciones externas solo es "académica": si tuvierais que realizar un programa por dinero, no os pondríais el problema de como alcanzar el objetivo.
Fecha y hora actual: Martes, 21 May 2024, 16:59 • Todas las horas son UTC + 1 Hora
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
Lista de permisos
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 Puede descargar archivos No puede publicar eventos en el calendario