Comment obtenir par programmation le niveau audio actuel?

Fondamentalement, ce dont j’ai besoin est un moyen de puiser dans la sortie audio actuelle et de vérifier le niveau sonore, c.-à-d.

Je n’ai pas besoin de vérifier le réglage du volume, mais le niveau sonore du stream audio en cours de lecture.

Désolé, je vous ai demandé comment faire dans Windows, sur Visual Studio 2008.

@mikerobi: Cela fait partie de mon raisonnement – s’il est affiché sur le compteur de volume du système, il doit y avoir un appel système qui peut le récupérer

Voici un lien utile pour les invocations d’API Windows, et voici exactement ce que vous recherchez:

http://www.pinvoke.net/default.aspx/winmm.waveOutGetVolume


Comme l’exigence a changé et que vous n’avez pas besoin du niveau audio, je suggère que ce qui suit pourrait vous aider:

Je pense que vous devez lire ce qui est lu sur le stream de sortie et en analysant les données de certains algorithmes, vous pourrez peut-être décider si un élément est lu ou non. Pour ce faire, vous avez besoin de l’ API MMDevice

http://msdn.microsoft.com/en-us/library/dd316556(v=VS.85).aspx

Je ne veux pas vous décourager, mais croyez-moi, cela ne sera pas facile à réaliser si vous ne connaissez pas le code non géré.

  • Vous devez remplir de nombreuses structures dans chaque invocation.
  • Vous devez effectuer des invocations dans un ordre spécifique.
  • Marquage des références aux structures.

Et même si vous accomplissez cela, vous ne pouvez pas anticiper le comportement final de l’appareil. Bonne chance.

C’est une bonne question. La réponse, pour les applications Windows 32 bits, consiste à connecter à winmm.dll et à d’autres DLL de contrôle audio de bas niveau. En C # je créerais une classe wrapper contenant des prototypes de méthodes externes:

 public class MyAudioWrapper { [DllImport("winmm.dll", EntryPoint = "waveOutGetVolume")] public extern void GetWaveVolume(IntPtr devicehandle, out int Volume); ... } 

Consultez ce lien pour obtenir une liste des méthodes audio Windows. vous pouvez utiliser la console de mixage ou simplement le contrôleur de sortie d’ondes pour régler le volume. Ce que vous voulez utiliser dictera quelles bibliothèques importer. Vous devrez rechercher le meilleur moyen de définir le prototype et comment gérer le périphérique audio / mélangeur.

J’ai récemment répondu à une telle question, voir Comment détecter si un son est lu sur une machine Windows .