2

Разработка музыкального приложения. В моей службе музыки я написал собственный широковещательный приемник. Он работает с Intent.ACTION_HEADSET_PLUG, но не с Intent.ACTION_MEDIA_BUTTON.Android: Как управлять воспроизведением музыки/паузой с устройства Bluetooth?

Просьба указать, как управлять элементами управления музыкой с устройств Bluetooth (Play/Pause/Next/Previous).

Код для Intent.ACTION_HEADSET_PLUG является:

@Override 
    public void onReceive(Context context, Intent intent) { 

     // aux 
     if(intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) 
     { 
      int state = intent.getIntExtra("state", -1); 

      if(state == 0) 
      { 
       // Headset is unplugged. PAUSE 
       pauseSong(); 
       sendBroadcast(); 
      } 
      else if(state == 1) 
      { 
       // headset is plugged 
       resumeSong(); 
       sendBroadcast(); 
      } 

     } 
    } 

ответ

1

Как объяснен в Media playback the right way talk, вы должны быть зарегистрированы в качестве «предпочтительного приложения медиа». Это намного легче, когда вы используете MediaSessionCompat, как описано в MediaSessionCompat video:

ComponentName mediaButtonReceiver = 
    new ComponentName(context, YourBroadcastReceiver.class); 
MediaSessionCompat mediaSession = 
    new MediaSessionCompat(context, 
    tag, // Debugging tag, any string 
    mediaButtonReceiver, 
    null); 
mediaSession.setFlags(
    MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | 
    MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS); 
mediaSession.setCallback(this); // a MediaSessionCompat.Callback 

// This is what enables media buttons and should be called 
// Immediately after getting audio focus 
mediaSession.setActive(true); 
+0

Я добавил код для моего проекта, но это не сработало. Я смотрел видео и видел, что еще больше вещей, которые нужно добавить в код, прежде чем он начнет работать. Нам нужно установитьMetadata и setState в mediaSession. Но как это сделать не объяснялось. Любая идея сэр? – WideFide

+0

Только что понял это через http://stackoverflow.com/questions/28547024/mediasession-does-not-show-background-on-lock-screen :) – WideFide

 Смежные вопросы

  • Нет связанных вопросов^_^