티스토리 뷰

반응형

[c#/unity]  시스템 볼륨(system volumn) 제어하기 ( CoreAudio 사용)

 

# Nuget Package에서 coreAudio를 받아서 버전에 맞게 설치한다.

 

#다운로드를 받은 후 기본 헬퍼 클래스를 만든다.

 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("볼륨은 0과 100사이에만 존재합니다.");

            _playbackDevice.AudioEndpointVolume.MasterVolumeLevelScalar = volumeLevel / 100.0f;
        }
    }

 

#기본 프로젝트에서 객체를 생성하여 사용한다.

 SystemVolumeConfigurator sc;
        public MainWindow()
        {

            InitializeComponent();
            sc = new SystemVolumeConfigurator();
        }

        protected override void OnKeyUp(KeyEventArgs e)
        {
            if (e.Key == Key.D1)
            {
                sc.SetVolume(1);
            }
            if (e.Key == Key.D2)
            {
                sc.SetVolume(0);
            }
            base.OnKeyUp(e);
        }

 

#window volumn #system volumn #사운드 제어하기 #볼륨제어하기 #유니티 #c#

반응형
댓글
반응형