2017-11-12 7 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> 
にこれを入れます
関連する問題