Avez-vous envisagé montrant les contrôles de Volume et de laisser l'utilisateur?
Si oui, je peux poster un code pour que. (En gros, vous avez juste shell à l'applet de contrôle du volume.
DWORD dwVolume;if(waveOutGetVolume(NULL,&dwVolume)== MMSYSERR_NOERROR)
waveOutSetVolume(NULL,0);//mute volume//later point in code, to unmute volume...
waveOutSetVolume(NULL, dwVolume);
Cela définit le volume à zéro, ce qui n'est pas le même que d'inhibition (même si l'effet est très similaire). Et il définit la “Vague” volume", pas “Master Volume”. Qui peut ou peut ne pas être ce que vous voulez. Pourquoi êtes-vous en passant NULL à la fonction?
waveOutSetVolume et mixerSetControlDetails seulement modifier le volume de votre application sur Windows Vista et supérieur.
Si vous souhaitez modifier le volume principal sur Vista et au-delà, recherche pour l' IAudioEndpointVolume interface.
Voici un post de blog que j'ai écrit sur ce il y a quelques années.
Pour moi, "au-dessus" et "au-delà" sonne presque la même chose quand on parle de versions. Pourriez-vous préciser s'il vous plaît. Ils SONT les mêmes. Mon point est que, à partir de Windows Vista et continue pour toutes les versions ultérieures de Windows (y compris Windows 7 et de tous par la suite publié des versions) la table de mixage et vagues volumes sont par application et pas global. Pour Vista et au-delà de l'utilisation IAudioEndpointVolume.
Peut-être vous devriez envisager de ne PAS modifier le volume global.
Pensez - y, si je baisse le volume dans le lecteur multimédia de tous les autres programmes sont toujours aussi fort qu'avant, et c'est exactement ce que j'attends de tout programme de premier cycle de son PROPRE volume.
Bien sûr, il peut y avoir des raisons de changement de volume global, n'en déplaise 😉
Deux options:
Il y a une réponse à cette question ici (modification du volume principal à partir de C++, qui comprend également SetMute, etc.)
Avez-vous envisagé montrant les contrôles de Volume et de laisser l'utilisateur?
Si oui, je peux poster un code pour que. (En gros, vous avez juste shell à l'applet de contrôle du volume.
OriginalL'auteur Clay Nichols
Utiliser le
waveOutSetVolume
API.Voici un exemple:
Pourquoi êtes-vous en passant NULL à la fonction?
OriginalL'auteur Irwin
waveOutSetVolume et mixerSetControlDetails seulement modifier le volume de votre application sur Windows Vista et supérieur.
Si vous souhaitez modifier le volume principal sur Vista et au-delà, recherche pour l' IAudioEndpointVolume interface.
Voici un post de blog que j'ai écrit sur ce il y a quelques années.
Ils SONT les mêmes. Mon point est que, à partir de Windows Vista et continue pour toutes les versions ultérieures de Windows (y compris Windows 7 et de tous par la suite publié des versions) la table de mixage et vagues volumes sont par application et pas global. Pour Vista et au-delà de l'utilisation IAudioEndpointVolume.
OriginalL'auteur Larry Osterman
Peut-être vous devriez envisager de ne PAS modifier le volume global.
Pensez - y, si je baisse le volume dans le lecteur multimédia de tous les autres programmes sont toujours aussi fort qu'avant, et c'est exactement ce que j'attends de tout programme de premier cycle de son PROPRE volume.
Bien sûr, il peut y avoir des raisons de changement de volume global, n'en déplaise 😉
OriginalL'auteur qwerty
Si tout ce que vous voulez faire est de changer le volume, alors vous pouvez utiliser la touche virtuelle codes pour modifier le volume comme ceci:
OriginalL'auteur maximus
Façon la plus simple de basculer muet est
De la même façon, vous pouvez déclencher +Volume et touches de Volume comportement. Jetez un oeil à http://www.blackwasp.co.uk/BasicVolumeControl.aspx et http://msdn.microsoft.com/en-us/library/windows/desktop/ms646247%28v=vs.85%29.aspx
Il y a aussi des valeurs pour des choses comme le contrôle du volume du micro, mais je n'ai pas essayé.
Si vous avez besoin de plus de contrôle sur le système de master volume, vous devez vérifier la version de Windows et de faire 2 versions de code:
Quelque chose comme susmentionné Changement de niveau de volume principal pour Win XP.
Quelque chose comme https://stackoverflow.com/a/3437069/1365066 pour Vista et supérieur.
OriginalL'auteur GrayFace