Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Control De Volumen En Gambas [SOLUCIONADO]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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 
raregazz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
raregazz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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 
raregazz - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Control Para Abrir Archivo? [SOLUCIONADO] CanihoJR General 2 Miercoles, 16 Septiembre 2009, 15:23 Ver último mensaje
CanihoJR
No hay nuevos mensajes Control De Evento Usando Last SOLUCIONADO ljma Aplicaciones/Fragmentos de Código 5 Miercoles, 22 Febrero 2012, 23:00 Ver último mensaje
ljma
No hay nuevos mensajes Como Cambiar El Volumen Del Sonido De Un C... Adrlar General 3 Jueves, 30 May 2013, 11:33 Ver último mensaje
jguardon
No hay nuevos mensajes Sonido: Volumen De Salida Y Volumen De Ent... jsbsan General 11 Viernes, 25 Marzo 2016, 10:50 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
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



  

 

cron