게임 초기 로드 후 터치 등의 사용자 인터렉션 없이 bgm 사운드 재생 방법 문의

안녕하세요, Unity WebGL로 게임 포팅 진행 중입니다.

브라우저에서는 사용자 인터렉션 없이 사운드 재생이 안 되는 제약 사항이 있는 것 같습니다.

현재 토스에 업로드 되어 있는 ‘오목’ / ‘사과게임’ 등 게임을 살펴 보면 게임 로딩이 완료되는 대로 사운드가 재생이 되고 있는데요, 제 앱의 경우에는 한 번 터치를 사용자가 진행해 줘야 BGM 사운드가 재생이 됩니다.

테스트는 iOS 18.7.1 / 앱인토스 샌드박스 환경에서 진행했습니다.

Unity - Manual: Audio in Web (Audio playback and browser security - For security reasons, browsers don’t allow audio playback until an end user interacts with your application webpage via a mouse click, touch event, or key press. Use a loading screen to allow the end user to interact with your application and start audio playback before your main content begins.)

아마 해당 제약 때문인 것 같은데요, 유저 인터렉션 없이도 사운드를 바로 재생할 수 있는 방법이 있을까요?

참고로 Audio Source로 BGM 플레이 중입니다.

저도 유니티로 개발중인데, 저도 궁금하네요

iOS에서만 인터렉션이 있어야만 재생이 되더라고요.

또한 사운드 재생 상태에서 백그라운드를 다녀오면 다시 사운드가 멈춰서 인터렉션을 또 해야 재생이 됩니다.

일부 토스게임들 해보면 바로 사운드가 나는 게임들이 있던데 어떤 방법을 쓴건지 궁금하네요.

방법을 찾았습니다.

granite.config.ts의 webViewProps에 mediaPlaybackRequiresUserAction: false 설정해 주면 되네요.

레퍼런스: WebView의 속성 제어하기 | 앱인토스 개발자센터

7개의 좋아요

요거 문서보니 RN쪽인데 웹뷰에서도 먹히는 속성일까요
mediaPlaybackRequiresUserAction

@tangible

저희 웹뷰인데 해당 속성 잘 작동하니 참고하셔요.