CAFE

안드로이드 질문

전화가 올때 재생중인 음악을 멈추게 하는 방법 질문

작성자안드로이드 초보|작성시간13.07.05|조회수854 목록 댓글 5

안녕하세요. 현재 인터넷 전화앱을 만들고 있습니다.

문제점은 아래와 같습니다.


전화기에서 음악재생 앱을 통해 음악이 실행되고 있습니다.

현재 재작중인 인터넷 전화기 앱을 통해 외부로부터 전화가 걸려옵니다.

이때 전화기에서 재생되고 있는 음악이 멈추지 않고 계속 플레이됩니다.


네이티브 전화의 경우 위의 시나리오에서 음악을 중지시키고 전화가 끝나면 음악을 재생시키는데, 어떻게 해야 이와같은 동작을 처리할수 있는지 질문드립니다.


감사합니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자안드로이드 초보 작성자 본인 여부 작성자 | 작성시간 13.07.08 음악이 재생중인 앱이 A라고 가정할때, 제가 만들고 있는 앱은 인터넷 전화 앱이고 이를 B라고 가정합니다. 즉, A와 B앱은 서로 다른 프로세서에서 동작중입니다. A앱이 음악 재생중에 B앱을 통해 전화가 들어온다고 할때, 위에서 말씀하신 Media Player 사용이 가능한가요? 만일 B앱에서 음악을 재생하고(이때 Media Player가 사용) B앱에서 전화가 들어올때 위의 방법이 가능한것 아닌가요?
    감사합니다.
  • 작성자늑돼지 | 작성시간 13.07.08 전화가 왔을 경우 다른 음악 앱이 멈추도록 "pause" command로 broadcast 를 보내고, 통화가 끝났을 때 "play" command로 broadcast를 보내면 될것 같습니다.
    기본 음악 앱은 "com.android.music.musicservicecommand"를 등록해놓았을 거 같은데요. (제조사 마다 다른지는 정확히 모르겠습니다.)
    예를들어,
    Intent intent = new Intent("com.android.music.musicservicecommand");
    intent.putExtra("command", "pause");
    sendBroadcast(intent);
    틀린 설명이 있다면 다른분께서 댓글로 지적 부탁드립니다.
  • 작성자jjang | 작성시간 13.07.08 제가 말씀드렸던 TelephonyManager는 모바일 통화에만 적용되는거고 당연히 인터넷 전화앱의 통화상태는 적용이 안되는거네요. 어젯밤에 제가 마침 음악재생 앱을 만들던 중이라 제대로 읽어보지도 못하고 답변을 달았습니다ㅜㅜ

    혼란을 드려 죄송하구요, 어차피 시스템 레벨의 알림을 사용하기 곤란하니 늑돼지님 말씀처럼 인텐트로 타겟 음악재생앱쪽으로 일시정지 명령을 날리는 등의 방법을 활용해야겠네요.
  • 작성자jjang | 작성시간 13.07.08 참고로 늑돼지님이 알려주신대로 해보니 갤럭시노트에서 잘 됩니다.

    즉 제 앱에서 특정 명령이 수행되면 인텐트를 통해 네이티브 음악재생앱(갤노트에서는 뮤직플레이어)쪽으로 "pause" 명령을 날려 "일시정지" 되도록 하고 또다른 명령이 수행되거나 제 앱을 종료시켜버리면 "play" 명령을 날려서 "이어재생" 되도록 해봤는데 둘다 잘 되네요.
  • 작성자안드로이드 초보 작성자 본인 여부 작성자 | 작성시간 13.07.09 먼저 친절한 답변감사드립니다. 늑장돼지님이 말씀하신 방법으로 처리해본결과 모든 폰에서 적용이 되지는 않네요. 안드로이드 개발사이트를 검색해보니 AudioManager의 Focus 얻어서 제어하는 방법이 있던데, 그방법을 사용해 봐야 겠습니다. 다시한번 감사드립니다.
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼