Control De Volumen En Gambas [SOLUCIONADO]


Objetivo: Control De Volumen En Gambas [SOLUCIONADO]
Buenas a todos.

Soy nuevo en esta comunidad, puesto que disponiendo de un poco de tiempo libre, he decidido aprender a programar con este lenguaje.

Estoy siguiendo un manual que encontré en la web, y como creo que la mejor forma de aprender es combinando textos con prácticas, he decidido embarcarme en un pequeño proyecto para ir cogiendo un poco de soltura con la sintaxis y los controles de gambas.

El proyecto en cuestión es un pequeño reproductor de streaming por internet.
La aplicación (sencilla por supuesto), esta basada en la utilización de mplayer para efectuar la reproduccion de los mismos (logrado), pero la primera duda que se me plantea es a la hora de poder controlar el volumen y silencio de las cadenas que reproduzco.

Buscando en foros encontre varias posibles soluciones llamando a las aplicaciones externas amixer y aumix pero no consegui mi objetivo.

amixer -c 0 sset Master,0 80% -------------------> ProcesoSubirVolumen = EXEC ["/usr/bin/amixer", "-c 0 sset Master,0 80%"]
Salida: Invalid card number.

aumix -v +5 ------------------------> ProcesoSubirVolumen = EXEC ["/usr/bin/aumix-text", "-v +5"]
Salida: Ninguna, me acepta la orden pero no efectua ningún cambio.

Solo conseguí realizar el silenciado de la reproducción con aumix pero de una forma muy poco ortodoxa.

ProcesoSilenciar = EXEC ["/usr/bin/aumix-text", "-v0"]

Si alguien fuese capaz de abrirme un poco la mente para resolver mi primera duda le estaría muy agradecid@.

Gracias a todos por anticipado.

última edición por raregazz el Martes, 30 Marzo 2010, 23:25; editado 1 vez
Perfil MP  
Objetivo: Re: Control De Volumen En Gambas
Bienvenido raregazz

Creo que tu problema es la sintaxis de los argumentos que pasas a EXEC. Todos ellos deberían estar entrecomillados y separados por comas.

ProcesoSubirVolumen = EXEC ["/usr/bin/amixer", "-c", "0", "sset", "Master,0", "80%"]


En la última parte me pierdo, porque no conozco bien amixer, pero creo que habrás cogido la idea.

Supongo que funcionará también con el comando SHELL de Gambas:

ProcesoSubirVolumen = SHELL "/usr/bin/amixer -c 0 sset Master,0 80%"


En este caso como ves, la cadena se escribe igual que si lo hicieras en consola. Al parecer, SHELL es un poco más lento que EXEC a la hora de ejecutar comandos del sistema, pero no es muy notable.

Saludos

Perfil MP  
Objetivo: Re: Control De Volumen En Gambas
jguardon escribió: [Ver mensaje]
Bienvenido raregazz

Creo que tu problema es la sintaxis de los argumentos que pasas a EXEC. Todos ellos deberían estar entrecomillados y separados por comas.

ProcesoSubirVolumen = EXEC ["/usr/bin/amixer", "-c", "0", "sset", "Master,0", "80%"]


En la última parte me pierdo, porque no conozco bien amixer, pero creo que habrás cogido la idea.

Supongo que funcionará también con el comando SHELL de Gambas:

ProcesoSubirVolumen = SHELL "/usr/bin/amixer -c 0 sset Master,0 80%"


En este caso como ves, la cadena se escribe igual que si lo hicieras en consola. Al parecer, SHELL es un poco más lento que EXEC a la hora de ejecutar comandos del sistema, pero no es muy notable.

Saludos


Muchas gracias por el recibimiento, que no pudo ser mejor.

Comentarte que para la reproducción del contenido en streaming he usado la sintaxis que te indiqué y me ha funcionado correctamente, por lo que no entiendo que en el caso del control de volumen no sea así.

Mira:

ProcesoReproducir = EXEC ["/usr/bin/mplayer", "http://s6.viastreaming.net:7010"] -------------> Reproduce el streaming sin ningún problema.

De hecho, en el libro que estoy siguiendo, “gambas, programación visual con Software Libre”, de la editorial EDIT LIN EDITORIAL S.L., cuyos autores son Daniel Campos Fernández y José Luis Redrejo, consta que la sintaxis es la que utilicé, y el ejemplo que ponen es el siguiente, indicando que los argumentos que se pasan, lo hacen como array de cadenas (

PUBLIC SUB main()
EXEC ["ls", "-l"]
END
Para obtener el listado de archivos de la carpeta actual en formato largo. En consola [raregazz@localhost ~]$ ls -l, por lo que no sé donde está el error, (¿quizas en que existen espacios en blanco.?).

De otra manera, darte las gracias (muchas) porque con el otro comando que me indicaste (SHELL), queda resuelto mi problema haciendo que el volumen suba y baje correctamente. Me vale perfectamente.

Buscare más info, a ver donde puede estar el error con el comando EXEC (puesto que no me lanza ningun error, solo no realiza su función).

Muchas gracias por la brevedad de tu respuesta, y por tu bienvenida.

Un saludo, raregazz.

Perfil MP  
Objetivo: Re: Control De Volumen En Gambas
SOLUCION


' Procedimiento de subir volumen mediante aumix

PUBLIC SUB VolUpButton_Click()

ProcesoSubirVolumen = EXEC ["/usr/bin/aumix-text", "-v", "+5"]

END

' Procedimiento bajar volumen mediante aumix

PUBLIC SUB VolDownButton_Click()

ProcesoBajarVolumen = EXEC ["/usr/bin/aumix-text", "-v", "-5"]

END

' Procedimiento asociado al boton de silenciar
' Silencia la reproducción si esta se esta llevando a cabo mediante amixer

PUBLIC SUB MuteButton_Click()

IF silenciado = FALSE

ProcesoSilenciar = EXEC ["/usr/bin/amixer", "sset", "Master", "mute"]
silenciado = TRUE
MuteButton.Picture = Picture["mutebutton2.gif"]

ELSE

ProcesoSilenciar = EXEC ["/usr/bin/amixer", "sset", "Master", "unmute"]
silenciado = FALSE
MuteButton.Picture = Picture["mutebutton.png"]

ENDIF

END


Disculpa, se me olvidaba.

Hice la prueba con la sintaxis que me indicaste y funciona 100%. ProcesoSubirVolumen = EXEC ["/usr/bin/amixer", "-c", "0", "sset", "Master,0", "80%"]

Queda anotado para los proximos usos de EXEC. .

Un saludo y gracias.

última edición por raregazz el Martes, 30 Marzo 2010, 23:42; editado 3 veces
Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2044s (PHP: -56% SQL: 156%)
Consultas SQL: 31 - Debug off - GZIP Activado