티스토리 뷰
반응형
[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#
반응형
'c#' 카테고리의 다른 글
[wpf/c#] vlc player 개발 및 라이브러리 사용법 (0) | 2022.10.27 |
---|---|
[unity/c#/wpf] 파일로 텍스트/로그 쓰기 (0) | 2022.10.26 |
[unity/ wpf/c#] newton json Serialize/deSerialize(ToJson/ToObject) 엄청 쉽게 하는법 (0) | 2022.03.16 |
[c#/wpf/mvvm] [wpf/c#] mvvm 을 활용한 런처(전원 관리 및 파일 관리) 만들기(3/3) FTP 파일 다운로드 / 앱 자동 실행 / Config파일 (0) | 2022.03.02 |
[wpf/c#] mvvm 을 활용한 런처(전원 관리 및 파일 관리) 만들기(2/3) (0) | 2022.03.02 |
댓글
반응형