마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaPlayer를 별도의 Activity에서 생성하니 노래가 중복되서 출력됩니다...

0 추천

위의 코드는 GameActivity의 일부이고, 뒤는 아직 구현하지 않은 Listener들이기 때문에 생략했습니다.

MainActivity에서 startActivity로 GameActivity로 넘어온뒤 MediaPlayer를 통해 노래를 재생하면 

'a'라는 노래가 약 1초간격을 가지고 중복재생 됩니다. 제가 생각하기에는 MainActivity에서 이미 GameActivity로 넘어온 상태에서 MediaPlayer 클래스를 호출하면 당연히 한번만 호출되어야 할거같은데 아닌가요??

추가)두분의 답변 정말 감사드립니다. 그런데 아직 이해가 가지 않아 소스를 git으로 올려봅니다.

https://github.com/lth01/hanjorun

2번 답변님의 말씀을 듣고 회전 없이 시작해보았습니다만 여전히 그랬고, 혹시나 oncreate에서 선언하여 문제가 있나싶어 onStart()로 옮겨 보았습니다만 소용이 없었습니다... 정말 어렵네요 한번만 더 도움을 요청드립니다.

 

github에서 제가 문제로 삼고있는 activity부분은 java/classmap/classtest/com/hanjo를 누르시면 나옵니다! MainActivity와 GameActivity가 있습니다.

taehee (160 포인트) 님이 2017년 12월 6일 질문

1개의 답변

+1 추천
 
채택된 답변

GameActivity에서 setRequestedOrientation를 제거하시면 해결 될 것 같습니다.

추가사항으로, AndroidManifest.xml 에서는 Activity의 화면방향을 "portrait" 로 하시고,

Activity 에서는 setRequestedOrientation() 로 "landscape" 로 바꾸시는 거 같은데,

특별한 사유가 없으시다면, setRequestedOrientation()는 제거하시고 AndroidManifest.xml 에서 방향을 지정하시는 것이 좋을 듯 싶습니다.

익명사용자 님이 2017년 12월 6일 답변
taehee님이 2017년 12월 8일 채택됨
그리고 현재 소스상으로 노래가 중복되는 이유는, setRequestedOrientation가 호출되면서 onStart() 가 두번 호출되어 중복재생되고 있습니다.
...