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.
Control De Volumen En Gambas [SOLUCIONADO]
Objetivo: Control De Volumen En Gambas [SOLUCIONADO]
última edición por raregazz el Martes, 30 Marzo 2010, 23:25; editado 1 vez
última edición por raregazz el Martes, 30 Marzo 2010, 23:25; editado 1 vez
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.
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:
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
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
Objetivo: Re: Control De Volumen En Gambas
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.
jguardon escribió: [Ver mensaje]
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.
Objetivo: Re: Control De Volumen En Gambas
última edición por raregazz el Martes, 30 Marzo 2010, 23:42; editado 3 veces
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.
' 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
Página 1 de 1
No puede crear mensajesNo 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