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

media player service를 lock screen에서 컨트롤

0 추천

stop과 start를 구현하려 하는데..

검색으로 해결되지 않아 질문을 드립니다.

방법이 두가지 있는 듯한데..

RemoteControlClient와 MediaSession 이렇게 

있는 거 같습니다.

RemoteControlClient를 여러번 검색을 해봤지만

MyRemoteControlEventReceiver을 어떻게 해야하는지에 대한 정보가 부족해 더이상 진행이 되지가 않습니다.

android에서 제공하는 예시 코드를 올립니다.

ComponentName myEventReceiver = new ComponentName(getPackageName(), MyRemoteControlEventReceiver.class.getName());
 AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
 myAudioManager.registerMediaButtonEventReceiver(myEventReceiver);
 // build the PendingIntent for the remote control client
 Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
 mediaButtonIntent.setComponent(myEventReceiver);
 PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0);
 // create and register the remote control client
 RemoteControlClient myRemoteControlClient = new RemoteControlClient(mediaPendingIntent);
 myAudioManager.registerRemoteControlClient(myRemoteControlClient);

제가 이해한걸로는 "위 코드는 RemoteControlClient 객체를 생성하는 거고 이 작업은 AudioPlaybackService(mediaservice)  클래스 내 OnCreate에서 이루어져야한다.그리고 MyRemoteControlEventReceiver 클래스를 따로 정의해  lock screen에서의 버튼액션 receive를  수행하도록 한다." 이렇게 이해했습니다.

그런데  MyRemoteControlEventReceiver 클래스를 따로 정의하지않고 AudioPlaybackService(mediaservice) 클래스를 receiver로 등록하면 안되나요?..

또 receive 에서의 처리를 어떻게 해야하나요?

 

 

익명사용자 님이 2015년 5월 7일 질문

1개의 답변

0 추천
 
채택된 답변
여기 예제 있네요

http://drcarter.tistory.com/m/post/150
Gradler (109,780 포인트) 님이 2015년 5월 7일 답변
봤던 문서인데  MyRemoteControlEventReceiver 클래스에 해당하는 클래스 소스가 없어서요..  AudioPlayerRemoteEventReceiver 해당문서에서는 이 클래스네요.
언급하신 My(또는 AudioPlayer)RemoteControlEventReceiver 내에서의 동작은 단순히 이벤트를 전달받아서 작성자님이 원하는 동작을 처리하도록 하게 하면 됩니다.

아래 소스를 참고하시길..
https://github.com/Jessecar96/Everfree/blob/master/src/com/jessecar96/everfree/radio/MyRemoteControlEventReceiver.java

그리고 API 문서를 보니 RemoteControlClient는 롤리팝부터 deprecated 되었으니 MediaSession을 쓰라고 하네여
답변 정말 감사드립니다. 예제를 보고싶었어요 ㅎㅎ
...