[.net compact framework] connaître et modifier le niveau de son

Soyez le premier à donner votre avis sur cette source.

Vue 10 852 fois - Téléchargée 451 fois

Description

Tout est dans le titre,
Cette source illustre l'utilisation de deux APIs managées pour la connaissance et la modification du niveau de son de l'appareil.
Ce sont:
waveOutGetVolume et
waveOutSetVolume

déclarée dans l'assembly coredll

Source / Exemple :


using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace NiveauSon
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void mnuQuit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void btnSetLevel_Click(object sender, EventArgs e)
        {
            Volumes selectedVolume = Volumes.NORMAL;
            switch (cbxSoundLevels.Text)
            {
                case "OFF": 
                    selectedVolume = Volumes.OFF;
                    break;
                case "LOW": 
                    selectedVolume = Volumes.LOW;
                    break;
                case "NORMAL": 
                    selectedVolume = Volumes.NORMAL;
                    break;
                case "MEDIUM": 
                    selectedVolume = Volumes.MEDIUM;
                    break;
                case "HIGH": 
                    selectedVolume = Volumes.HIGH;
                    break;
                case "VERY_HIGH":
                    selectedVolume = Volumes.VERY_HIGH;
                    break;
            }
            SmartDeviceVolume.Volume = selectedVolume;
        }
        private void mnuGetSoundLevel_Click(object sender, EventArgs e)
        {
            cbxSoundLevels.SelectedItem = SmartDeviceVolume.Volume.ToString();
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            mnuGetSoundLevel_Click(this, e);
        }
    }
    public enum Volumes : int
    {
        OFF = 0,
        LOW = 858993459,
        NORMAL = 1717986918,
        MEDIUM = -1717986919,
        HIGH = -858993460,
        VERY_HIGH = -1
    }
    public static class SmartDeviceVolume
    {
        [DllImport("coredll.dll", SetLastError = true)]
        internal static extern int waveOutSetVolume(IntPtr device, int volume);
        [DllImport("coredll.dll", SetLastError = true)]
        internal static extern int waveOutGetVolume(IntPtr device, ref int volume);
        public static Volumes Volume
        {
            get
            {
                int volume = 0;
                waveOutGetVolume(IntPtr.Zero, ref volume);
                switch (volume)
                {
                    case (int)Volumes.OFF: return Volumes.OFF;
                    case (int)Volumes.LOW: return Volumes.LOW;
                    case (int)Volumes.NORMAL: return Volumes.NORMAL;
                    case (int)Volumes.MEDIUM: return Volumes.MEDIUM;
                    case (int)Volumes.HIGH: return Volumes.HIGH;
                    case (int)Volumes.VERY_HIGH: return Volumes.VERY_HIGH;
                    default: return Volumes.OFF;
                }
            }
            set 
            { 
                waveOutSetVolume(IntPtr.Zero, (int)value); 
            }
        }
    }
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Aly05
Messages postés
8
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
30 mars 2010

Salut,

Je veux récupérer l'adresse ip de mon pda, j'ai trouvé des codes mais ils permettent de récupérer un tableau d'adresses!!!

As-tu une idée pour n'avoir qu'une seule adresse ( la seule adresse) sans passer par une collection

Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.