2017-11-12 13 views
-1

저는 APP와 같은 일반적인 MediaPlayer를 프로그래밍했습니다. 이제 볼륨 제어, 일시 중지 및 노래 재생을위한 인라인 리모콘이있는 헤드폰이 있습니다. 내 생각은 이것으로 내 MediaPlayer 서비스를 제어하는 ​​것입니다. 하지만 내 문제에 관한 웹에서 아무것도 찾을 수 없습니다. 누군가가 나에게 이것에 대한 힌트를 줄 수 있습니까?MediaPlayer 서비스를 제어하는 ​​오디오 케이블

답변

0

내가 왜 내 질문에 downvoted 모르겠지만, 나는 다른 사람들이 같은 문제에 직면 해답을 줄 것이다.

public class MediaService extends Service implements 
    MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, 
    MediaPlayer.OnCompletionListener { 


private IntentFilter intentFilterMediaButton = new IntentFilter(Intent.ACTION_MEDIA_BUTTON); 
private MediaButtonIntentReceiver mMediaButtonReceiver = new MediaButtonIntentReceiver(); 

@Override 
public void onPrepared(MediaPlayer mediaPlayer) { 
    registerReceiver(this.mMediaButtonReceiver, this.intentFilterMediaButton); 
    player.start(); 
} 
public static class MediaButtonIntentReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String intentAction = intent.getAction(); 
     if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { 
      return; 
     } 
     KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 
     if (event == null) { 
      return; 
     } 
     int action = event.getAction(); 
     if (action == KeyEvent.ACTION_DOWN) { 
      switch (action){ 
       case 0: // Button down 
        // do something 
        Toast.makeText(context, "BUTTON PRESSED!", Toast.LENGTH_SHORT).show(); 
        break; 
      } 
     } 
     abortBroadcast(); 
    } 
} 

메인은 Activity.onCreate()

AudioManager manager = (AudioManager) getSystemService(AUDIO_SERVICE); 
    if (manager != null) { 
     manager.registerMediaButtonEventReceiver(new ComponentName(getPackageName(), MediaService.MediaButtonIntentReceiver.class.getName())); 
    } 

이 호출 매니페스트

<receiver android:name="MediaService$MediaButtonIntentReceiver" android:enabled="true"> 
     <intent-filter android:priority="1000000000"> 
      <action android:name="android.intent.action.MEDIA_BUTTON" /> 
     </intent-filter> 
    </receiver> 
이것을 넣어