このトピックが以前にここで議論されたことは知っていますが、まだ機能させることができません。win 7 SDK を使用し、このような公開されたプロジェクトのコードを使用せずに、自分のマシンで現在のボリュームを取得する必要があります (そこから始めて、後でプロジェクトの機能を拡張する方が簡単だと思います) 。プロジェクトに特定の参照を追加する必要がありますか? dllimport を使用しますか? 任意の助けをいただければ幸いです
2 に答える
多分これで:http://msdn.microsoft.com/en-us/library/ms679138%28VS.85%29.aspx (ISimpleAudioVolume インターフェイス)
- 編集 -
このプロジェクトには、あなたが探しているものが含まれているようです。
http://hintdesk.com/Web/Source/Adjust%20System%20Volume.zip
そうでない場合は、ここを参照してください: Get Master Sound Volume in c#
またはここ: http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/05dc2d35-1d45-4837-8e16-562ee919da85
しかし、これについて私が見つけた最良のコードは、質問で提供したリンクに常に戻ります。幸運を!
--編集2--
または、次の助けを借りて FMOD (c++) を使用できます: Using FMOD for C#?
そしてこれ:http://sourceforge.net/projects/fmodnet/
Core Audio API を使用すると、次のクラスを使用して、再生用のデフォルトのオーディオ エンドポイントの音量を取得および設定できます。
using CoreAudioApi;
public class SystemVolumeConfigurator
{
private readonly MMDeviceEnumerator _deviceEnumerator = new MMDeviceEnumerator();
private readonly MMDevice _playbackDevice;
public SystemVolumeConfigurator()
{
_playbackDevice = _deviceEnumerator.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
}
public int GetVolume()
{
return (int)(_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar * 100);
}
public void SetVolume(int volumeLevel)
{
if (volumeLevel < 0 || volumeLevel > 100)
throw new ArgumentException("Volume must be between 0 and 100!");
_playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar = volumeLevel / 100.0f;
}
}