본문 바로가기
개발 (Game)/Unity (General)

[Unity] 사운드 출력기기 전환에 따른 이슈.

by 진현개발일기 2025. 2. 1.

■ 이슈

1. 게임에서 세팅한 AudioMixer의 Sound 옵션 값들이 리셋 된다.

2. 배경 음악이 정지된다.

■ 원인

Unity 자체에서 사운드 출력기기 전환 시 Audio Engine을 re-init하고 있다. 이로 인하여 Audio Settings가 바뀌게 되므로 모든 Audio State의 추적이 끊기게 되어 Audio Mixer 등 오디오 관련 데이터들이 간접적으로 영향을 받을 수 있다.

 

구체적인 상황을 예로 들자면 안드로이드의 기본 스피커를 사용하고 있다가, 블루투스를 연동할 경우 재현이 가능하다.

■ 해결

1. Audio Settings의 Sampling Rate 복구 없이 Mixer의 볼륨 값만 다시 로드하니 해결되었음.

2. 추후 이슈 재현 시 모든 세팅 값[AudioSettings 클래스] 값을 불러올 예정 

 

■ 코드 예시

 

1. Initialize 부분

 

AudioSettings.OnAudioConfigurationChanged += OnAudioConfigurationChanged;

 

2. 콜백 함수

 

void OnAudioConfigurationChanged(bool deviceWasChanged)
{
      // 1. Audio Mixer 혹은 Audio Settings와 관련된 옵션 값 복구 코드
      // 2. 만약 BGM 같은 중요한 음원이 출력되고 있었으면 다시 재생
}