|
Página 1 de 1
|
Control De Volumen En Gambas [SOLUCIONADO]
Autor |
Mensaje |
raregazz
Usuario
Registrado: Marzo 2010
Mensajes: 9
Edad: 37
|
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
|
#1 Martes, 30 Marzo 2010, 19:20 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Martes, 30 Marzo 2010, 21:16 |
|
|
raregazz
Usuario
Registrado: Marzo 2010
Mensajes: 9
Edad: 37
|
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
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.
|
#3 Martes, 30 Marzo 2010, 21:43 |
|
|
raregazz
Usuario
Registrado: Marzo 2010
Mensajes: 9
Edad: 37
|
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
|
#4 Martes, 30 Marzo 2010, 21:48 |
|
|
|
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
|
|
|
|
|