Hola invitado         02 Sep, 2010 - 04:37
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Obtener y ajustar el volumen de los altavoces lecturas 3792
 Enviado por Luis María Guayán en Jueves, 31 Marzo, 2005
API Dos funciones para obtener y ajustar el volumen de los altavoces mediante llamados a la API de Windows.

Obtener y ajustar el volumen de los altavoces

Luis María Guayán Por Luis María Guayán, Tucumán, Argentina


Para obtener el volumen de los altavoces utilizamos función GetVolume() que retorna una cadena Hexadecimal, donde los 4 primeros caracteres (sin el "0x") es el correspondiente al altavoz derecho, y los siguientes 4 corresponden al altavoz izquierdo. En el siguiente ejemplo transformamos la cadena retornada para obtener el porcentaje de volumen de cada altavoz.
lcHex = GetVolume()
*-- % volumen altavoz izquierdo
lnIzq = CEILING(BITAND(EVALUATE(lcHex),0xFFFF)*100/0xFFFF)
*-- % volumen altavoz derecho
lnDer = CEILING((BITAND(EVALUATE(lcHex),0xFFFF0000)/0x10000)*100/0xFFFF)

? lcHex    && cadena hexadecimal
? lnIzq    && porcentaje volumen altavoz izquierdo
? lnDer    && porcentaje volumen altavoz derecho

*---------------------------------------------------
* FUNCTION GetVolume()
*---------------------------------------------------
* Toma el valor de volumen de los altavoces de la PC
* RETORNO: Caracter (cadena de caracteres hexadecimal)
* USO: GetVolume()
*---------------------------------------------------
FUNCTION GetVolume()
LOCAL ln
  DECLARE INTEGER waveOutGetVolume IN Winmm ;
    INTEGER wDeviceID, ;
    INTEGER @ dwVolume
    ln = 0x0000
    =waveOutGetVolume(0,@ln)
    RETURN TRANSFORM(ln,";@0")
ENDFUNC
*---------------------------------------------------
Para ajustar el volumen de los altavoces utilizamos la función SetVolume() pasandole como parámetro el porcentaje de cada altavoz (izquierdo y derecho). En el siguiente ejemplo ajustamos el volumen al 75% cada altavoz.
? SetVolume(75,75)

*---------------------------------------------------
* FUNCTION SetVolume(tnIzq, tnDer)
*---------------------------------------------------
* Configura el volumen de los altavoces de la PC
* PARAMETROS:
*   tnIzq = Porcentaje de volumen altavoz izquierdo
*   tnDer = Porcentaje de volumen altavoz derecho
* RETORNO: Logico .T. si pudo configurar
* USO: SetVolume(50,50)
*---------------------------------------------------
FUNCTION SetVolume(tnIzq, tnDer)
  LOCAL lnVol
  DECLARE INTEGER waveOutSetVolume IN Winmm ;
    INTEGER wDeviceID, ;
    INTEGER dwVolume
  tnIzq = MAX(0,MIN(tnIzq,100))
  tnDer = MAX(0,MIN(tnDer,100))
  lnVol = EVALUATE("0x" + ;
    RIGHT(TRANSFORM(tnDer*0xFFFF/100,";@0"),4) + ;
    RIGHT(TRANSFORM(tnIzq*0xFFFF/100,";@0"),4))
  RETURN 0 = waveOutSetVolume(0,lnVol)
ENDFUNC
*---------------------------------------------------
Nota: El control de volumen con las funciones de la API waveOutSetVolume y waveOutGetVolume de este ejemplo solo trabajan para el tipo Onda (Wave) y no sobre el control de volumen general del sistema.
 Versión imprimible  
Obtener y ajustar el volumen de los altavoces | Entrar/Crear una cuenta | 0 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.



Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.