Aqui pongo otra clase que ha hecho Carlitros para controlar el volumen por código
{
//Estas constantes contienen los niveles de volumen de la PDA
const int OFF = 1;
const int VERY_LOW = 858993459;
const int LOW = 1717986918;
const int NORMAL = -1717986919;
const int HIGH = -858993460;
const int VERY_HIGH = -1;
[DllImport("coredll.dll")]
private static extern int waveOutSetVolume(IntPtr hwo, int dwVolume);
[DllImport("coredll.dll")]
private static extern int waveOutGetVolume(IntPtr hwo, ref int dwVolume);
public static void Apagado()
{
waveOutSetVolume(IntPtr.Zero, OFF);
}
public static void MuyBajo()
{
waveOutSetVolume(IntPtr.Zero, VERY_LOW);
}
public static void Bajo()
{
waveOutSetVolume(IntPtr.Zero, LOW);
}
public static void Normal()
{
waveOutSetVolume(IntPtr.Zero, NORMAL);
}
public static void Alto()
{
waveOutSetVolume(IntPtr.Zero, HIGH);
}
public static void MuyAlto()
{
waveOutSetVolume(IntPtr.Zero, VERY_HIGH);
}
public static void SubirVolumen()
{
int vol = 0;
waveOutGetVolume(IntPtr.Zero, ref vol);
switch (vol)
{
case (OFF):
MuyBajo();
break;
case (VERY_LOW):
Bajo();
break;
case (LOW):
Normal();
break;
case (NORMAL):
Alto();
break;
case (HIGH):
MuyAlto();
break;
case (VERY_HIGH):
MessageBox.Show("Volumen a tope");
break;
}
}
public static void BajarVolumen()
{
int vol = 0;
waveOutGetVolume(IntPtr.Zero, ref vol);
switch (vol)
{
case (OFF):
MessageBox.Show("Sin sonido");
break;
case (VERY_LOW):
Apagado();
break;
case (LOW):
MuyBajo();
break;
case (NORMAL):
Bajo();
break;
case (HIGH):
Normal();
break;
case (VERY_HIGH):
Alto();
break;
}
}
}
Espero que os sirva. Saludos!
3 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
hola podrias ayudarnos??? queremos utilizar tu clase pero no sabemos que controles utilizar en el formulario….
Otra pregunta tu codigo aplica a C# de visual.Net?….
y de pronto nos puedes ayudar con las libreria q utilizas?
De antemano te agradecemos…
Hola Daniel, para probar los controles ponte unos botones e invoca los metodos Apagado(), MuyBajo(), Bajo()….
Sí el código está e C# de Visual.net
En cuanto a las librerías, utiliza para hacer las llamadas al api de windows mobile esta:
“System.Runtime.InteropServices”
Espero que te haya servido de ayuda.
Un Saludo. Víctor.
hola, tengo una pregunta y es que me vota el siguiente error
!!!! No se puede cargar el archivo DLL ‘CoreDll.dll’: No se puede encontrar el módulo especificado. (Excepción de HRESULT: 0×8007007E) !!!!!
no se que es pero ya tengo la dll (”coredll.dll”) en el debug y aun no funciona
x fa si me puedes ayudar