Aqui pongo otra clase que ha hecho Carlitros para controlar el volumen por código
[code lang=»csharp»]
public class ControlVolumen
{
//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;
}
}
}
[/code]
Espero que os sirva. Saludos!
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: 0x8007007E) !!!!!
no se que es pero ya tengo la dll («coredll.dll») en el debug y aun no funciona
x fa si me puedes ayudar
buen día gracias por el ejemplo fue muy útil, una aclaración en windows mobile 3.5 compact framework 3.5 se usa OFF = 0;