버전
menu_open
경고 : 이 페이지에서 보호된 일부 정보가 표시되지 않았습니다.
특정 플랫폼의 라이선스 사용자일 경우 로그인하셨는지 확인해 주세요.
Wwise SDK 2019.1.11
시스템 전용 이벤트 처리

대부분 운영체제는 다음과 같은 이벤트를 위해 콜백이나 알림을 갖습니다.

  • 홈 버튼을 누름
  • 애플리케이션을 백그라운드/포그라운드에 배치
  • 사용자 음악 재생/정지

이러한 이벤트들은 Wwise가 자동으로 처리하지 않습니다. 주된 이유는 일부 OS의 API가 여러 개의 콜백이나 알림 수신자를 허용하지 않기 때문입니다. 따라서 게임 이벤트가 아닌 시스템 전용 이벤트가 무시되는 걸 방지하기 위해 Wwise SDK에 해당 이벤트들을 알려줘야 합니다.

사용자 음악을 교체하는 방법에 대한 더 많은 정보는 사용자 음악 (BGM)과 DVR 처리 를 확인하세요.

백그라운드/포그라운드에서의 애플리케이션

일반적으로 모든 게임 시스템은 해당 애플리케이션을 임시로 백그라운드에 배치할 수 있습니다. Wwise는 사용자의 선호도나 플랫폼의 요구사항에 따라 다음 세 가지의 가능한 행동을 가질 수 있습니다.

  • 모든 오디오 렌더링 중지: AK::SoundEngine::Suspend(false) 를 호출
  • 부분적인 중지(이벤트 처리는 유지하나 오디오를 렌더링하지 않음): AK::SoundEngine::Suspend(true) 를 호출. 게임이 여전히 실행 중이며, 사운드 엔진에 특정 호출을 전송할 때 유용합니다.
  • 오디오를 계속해서 재생: 특별히 해줘야 하는 건 없습니다.

일반적으로 애플리케이션이 백그라운드에 놓여 Suspend(false) 가 사용되면, 게임은 어떠한 사운드 엔진 API도 호출하지 않습니다. 이벤트를 발송하는 게 작동은 하지만, 해당 이벤트를 누적시켜 시스템이 깨어나면 한꺼번에 전부 재생하게 됩니다. 오디오 처리를 다시 진행하려면, 시스템으로부터 적절한 알림을 받았을 때 하나의 호출로 RenderAudio()를 진행하도록 AK::SoundEngine::WakeupFromSuspend()를 호출합니다. RenderAudio()를 호출하기 전에 다른 이벤트들을 큐에 담습니다.

올바른 동작을 선택하기 위해서는 해당 제조사 문서의 각 플랫폼 요구사항에 관해 확인해야 합니다.

Android에서 중요한 사항으로 App Lost/Gain Focus와 App Pause/Resume 이벤트를 처리해줘야 합니다. Google의 요구사항은 포그라운드에서 실행 중이 아닌 앱은 가능한 적은 CPU를 사용해야(0에 가깝게) 합니다. 이는 Suspend(false) 를 호출해서 처리할 수 있습니다. Android를 위한 BGM 세부사항 도 참고하세요.

Apple은 애플리케이션이 백그라운드에서 사용될 때 가능한 적은 CPU 사용을 요구합니다. 이는 Wwise에서 자동으로 처리됩니다. iOS를 위한 BGM 세부사항 도 참고하세요.

Mac을 위한 공식 가이드라인은 없지만, 다른 플랫폼과 일관성이 있게 애플리케이션 처리가 비활성화되면 Suspend()로 사운드를 끄게 됩니다. 게임 구현에 따라 강제 중지 (false 매개 변수로)나 활성화 중지 (true 매개 변수)가 됩니다.

Linux를 위한 공식 가이드라인은 없지만, 다른 플랫폼과 일관성이 있게 애플리케이션 처리가 비활성화되면 Suspend()로 사운드를 끄게 됩니다. 게임 구현에 따라 강제 중지 (false 매개 변수로)나 활성화 중지 (true 매개 변수)가 됩니다.

Windows를 위해 명시된 요구사항은 없지만, 일반적으로 애플리케이션이 포그라운드에 있지 않으면 오디오를 꺼주는 게 바람직합니다. 이러한 처리를 하려면, Ak::SoundEngine::Init()가 호출될 때 메인 Windows의 hWnd를 AkPlatformInitSettings 구조체에 제공해야 합니다. 오디오 스레드는 이러한 상황( Suspend(true) 와 같은)에서 실행을 유지하게 됩니다. 이는 OS에 의해서 처리됩니다.

다른 대안으로, WM_SHOWWINDOW 메시지를 다뤄서, 오디오를 페이드아웃하거나 Suspend()를 직접 호출하는 것과 같이 창이 최소화되었을 때 좀 더 특정한 처리를 할 수도 있습니다.


이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요