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

다른앱에서 재생중인 음악을 일시정지-다시재생 시키려면?

0 추천
기기의 특정 (하드)버튼을 누를시, 사운드 파일을 재생시키는 어플을 만들고 있습니다.
 
어플이 실행중이 아닐때도, 심지어는 화면이 꺼져있을때에도 하드 버튼(볼륨버튼이나, 이어폰의 hook버튼)에 반응하는게 핵심이기 때문에,
액티비티는 어디까지나 서비스 on/off 용이고, 서비스/브로드캐스트리시버로 대부분 구현했습니다.
 
일단 작동은 원하는대로 다 되는데요.
 
한가지, 다른 뮤직플레이어에서 음악이 재생중일 경우,
음악을 잠시 일시정지 - 내 사운드 재생- 음악 다시 재생 기능을 추가하려고하는데 맘대로 안되네요.
 
일단은 키 이벤트 Media Button pause/play 를 발생시켜서 해결하려고 했습니다.
 
Instrumentation().sendKeyDownUpSync 를 써봤는데,
이건 액티비티가 활성화되어있을때만 정상 작동을 하고,
서비스나 브로드캐스트리시버를 통해서 백그라운드에서 작업을 할 경우 inject_event permission 에러가 뜨더라고요.
찾아보니 시스템 권한이라서 루팅을 해야한다해서, 왠지 이 방법은 아닌거 같네요 ㅜ.
 
Q1. 서비스나 브로드캐스트리시버에서 키이벤트를 발생시키는 방법이 없을까요?
 
Q2. 아니면 키 이벤트 발생 외에, 다른 플레이어에서 재생중이던 음악을 일시정지, 다시 재생 시키는 방법이 있을까요? (물론 이 역시 백그라운드에서 이루어져야하고요)
 
아임프롬지구 (150 포인트) 님이 2013년 3월 27일 질문
아임프롬지구님이 2013년 3월 27일 수정

1개의 답변

0 추천
 
채택된 답변
AudioFocus 와 관련된거 같은데 도움이 되려나 모르겠어요 저도 뮤직플레이어 관련앱때문에 공부중에 답변드립니다.

 

http://shadowxx.egloos.com/10987471 여기 블로그에 설명이 잘 되있더라구용
탭송 (870 포인트) 님이 2013년 3월 27일 답변
아임프롬지구님이 2013년 3월 28일 채택됨
답변 감사합니다~ 이 방식으로 해서 일단 성공은 했네요.
다만 MusicPlayer 같은 Focus 관련 Listener를 충분히 고려했을, 음악이 메인 퍼포먼스인 어플에선 정상작동을 하는데,
게임이나 기타 허접한 사운드 재생 어플 같은데선 작동을 안하네요 ㅜ
AudioManager 밑에 더 찾아보니, Solo나 Mute도 있긴 하던데, 이건 어째서인지 내 Sound 까지 같이 Mute가 되서 출력이 되버리고 orz..
좀 더 해봐야겠네요.
...