Skip to content

Categories:

Control de volumen por código en Compact Framework C#

Aqui pongo otra clase que ha hecho Carlitros para controlar el volumen por código

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;
}
}
}

Espero que os sirva. Saludos!

No hay artículos relacionados. Echa un ojo a estos:

    Posted in Sin categoría.


    4 Responses

    Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

    1. Daniel says

      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…

    2. Víctor says

      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.

    3. mrjuan says

      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

    4. jonaro03 says

      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;



    Some HTML is OK

    or, reply to this post via trackback.