2

このトピックが以前にここで議論されたことは知っていますが、まだ機能させることができません。win 7 SDK を使用し、このような公開されたプロジェクトのコードを使用せずに、自分のマシンで現在のボリュームを取得する必要があります (そこから始めて、後でプロジェクトの機能を拡張する方が簡単だと思います) 。プロジェクトに特定の参照を追加する必要がありますか? dllimport を使用しますか? 任意の助けをいただければ幸いです

4

2 に答える 2

4

多分これで: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/

于 2012-06-05T19:32:25.850 に答える
0

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;
        }
}
于 2016-02-26T19:43:07.217 に答える