|
Página 1 de 1
|
Grabar Datos Audio Con Las Funciones Externas Del API De Alsa
Autor |
Mensaje |
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Grabar Datos Audio Con Las Funciones Externas Del API De Alsa
Señalo esta página que explica cómo grabar datos de audio con las funciones externas del API de Alsa para crear un archivo WAV:
http://www.gambas-it.org/wiki/index...0_Registrazione
última edición por vuott el Jueves, 06 Marzo 2014, 03:25; editado 3 veces
|
#1 Miercoles, 12 Febrero 2014, 19:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Grabar Datos Audios Con Las Funciones Externas Del API De Alsa
Vuott:
Acerca de Alsa:
Tengo este programa en Python:
enlace a pastebin: http://pastebin.com/embed_js.php?i=Z1hJZds7
Que lo que hace es escuchar el micrófono del ordenador y crea un archivo donde muestra el valor de medio del sonido producido en un tiempo determinado.
¿sabrias como podria hacerlo en gambas, con llamadas externas?
|
#2 Miercoles, 12 Febrero 2014, 21:02 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Grabar Datos Audios Con Las Funciones Externas Del API De Alsa
¿sabrias como podria hacerlo en gambas, con llamadas externas?
Al final, la base es similar a la de los ejemplos en la página que reporté.
Yo no conozco Python, pero relativamente a la parte de Alsa yo diría que el código es el siguiente:
Library "libasound:2"
Private Const SND_PCM_STREAM_CAPTURE As Byte = 1
Private Const SND_PCM_NONBLOCK As Byte = 1
Private Const SND_PCM_FORMAT_S16_LE As Byte = 2 ' 16bit little-endian
Private Const SND_PCM_ACCESS_RW_INTERLEAVED As Byte = 3
' int snd_pcm_open(snd_pcm_t **pcm, const char *name, snd_pcm_stream_t stream, int mode)
Private Extern snd_pcm_open(handleP As Pointer, nome As String, flusso As Integer, mode As Integer) As Integer
' int snd_pcm_set_params(snd_pcm_t * pcm, snd_pcm_format_t format, snd_pcm_access_t access, unsigned int channels, unsigned int rate, int soft_resample, unsigned Int latency)
Private Extern snd_pcm_set_params(pcm As Pointer, formatInt As Integer, accesso As Integer, channels As Integer, rate As Integer, soft_resample As Integer, latency As Integer) As Integer
' snd_pcm_sframes_t snd_pcm_readi (snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size)
Private Extern snd_pcm_readi(pcm As Pointer, buffS As Short[], sInt As Integer) As Integer
' const char * snd_strerror (int errnum)
Private Extern snd_strerror(errnum As Integer) As String
' snd_pcm_close(snd_pcm_t *pcm)
Private Extern snd_pcm_close(pcm As Pointer)
Public Sub Main()
Dim handle As Pointer
Dim device As String = "default"
Dim frecuencia, canales As Integer
' Establece la frecuencia de muestreo de 8000 Hz, el canal MONO:
frecuencia = 8000
canales = 1
' Inicializa el sub-sistema PCM de Alsa modo "nonblocking":
err = snd_pcm_open(VarPtr(handle), device, SND_PCM_STREAM_CAPTURE, SND_PCM_NONBLOCK)
If err < 0 Then Error.Raise("Error inicializando el sub-sistema PCM: " & snd_strerror(err))
' Establece los parámetros del sub-sistema Alsa PCM para la grabacion:
err = snd_pcm_set_params(handle, SND_PCM_FORMAT_S16_LE, SND_PCM_ACCESS_RW_INTERLEAVED, canales, frecuencia, 1, 0)
If err < 0 Then Error.Raise("Error en la configuración de los parametros del sub-sistema PCM: " & snd_strerror(err))
........
........
snd_pcm_close(handle)
End
Ciao
última edición por vuott el Jueves, 13 Febrero 2014, 16:40; editado 4 veces
|
#3 Jueves, 13 Febrero 2014, 16:37 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Grabar Datos Audios Con Las Funciones Externas Del API De Alsa
vuott:
Ok, gracias, le echo un vistazo.
Saludos
Julio
|
#4 Jueves, 13 Febrero 2014, 21:00 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|