
웹페이지에 오디오 플레이어를 삽입하기 위해 react-h5-audio-player 패키지를 사용했다.

자동재생이 되게 하고 싶었는데, 일반적인 브라우저 정책 상 사용자 동의 없는 자동재생은 막히기 때문에...

뭐 이런.. useEffect를 이용해 어떤 사용자 상호작용이 1회라도 있으면 재생되게 했다.
아니 그런데 ... 어떤 상황에서는 갑자기 에코가 발생하는 것이 아닌가?
확인해 봤더니 카카오톡 인앱브라우저를 사용할 때 그랬다.
카카오톡 인앱브라우저는 Autoplay를 막지 않는 것이다....
Autoplay 옵션으로 재생이 되고 있는데 상호작용 이벤트로 또 재생을 시키니까 에코같은 효과가 났던 것이다.
그래서 플레이어에서 재생 버튼을 눌러도 배경음악이 절대 안 꺼졌다...(당연히 에코는 꺼짐)
Autoplay를 제거하면 카톡 인앱브라우저, 크롬 모바일웹, 크롬 PC웹 등등에서 원하는 대로 autoplay되는 것 없이 사용자 상호작용 이후 재생된다.

🔍 요약
- 카카오톡 인앱 브라우저에서 autoPlay가 동작 → 음악이 재생됨
- 사용자가 페이지를 터치 → handleInteraction() 실행됨 → play() 호출됨
- 이미 autoPlay로 재생 중이지만, 별도의 play() 호출로 같은 음원이 다시 재생됨
- 결과적으로 음악이 두 겹으로 겹쳐서 들리는 현상 발생
- autoPlay 옵션을 제거하여 해결
'개발 의문 해결' 카테고리의 다른 글
SCSS 가상요소 동적 설정값 JS로 읽어들이기 (0) | 2024.06.12 |
---|---|
Firebase로 배포한 React 프로젝트에서 OG 정보 설정하기 (1) | 2024.03.13 |
React에서 오픈그래프 정보 설정하기 (0) | 2024.03.08 |
Firebase app 중복 초기화 문제 (0) | 2024.03.06 |
Firebase Authentication으로 로그인 페이지 구현하기 (1) | 2024.02.28 |