Кнопки Android MediaSession

Позволяет взаимодействовать с контроллерами мультимедиа, клавишами регулировки громкости, мультимедийными кнопками и элементами управления транспортом.

В документации MediaSession говорится, что она работает с мультимедийными кнопками и элементами управления транспортом. Включает ли это только физические кнопки на устройстве, или вы можете реализовать кнопки пользовательского интерфейса, которые запускают обратные вызовы MediaSession?

1 ответ

Это точно так.

Во-первых, вам нужен сервис, который прослушивает события мультимедийных кнопок, поэтому объявите его так, как вы это делаете

     <service android:name="com.example.android.MediaPlaybackService" >
   <intent-filter>
     <action android:name="android.intent.action.MEDIA_BUTTON" />
   </intent-filter>
 </service>

В этом сервисе вы должны инициализировать MediaSessionCompat возразить и передать полученное вами намерение MediaButtonReceiver вот так

    private MediaSessionCompat mMediaSessionCompat = ...;

 public int onStartCommand(Intent intent, int flags, int startId) {
   MediaButtonReceiver.handleIntent(mMediaSessionCompat, intent);
   return super.onStartCommand(intent, flags, startId);
 }

Вы также можете создать экземпляр MediaSessionCompat.Callback и установить его с

setCallback()

Здесь вы фактически будете контролировать воспроизводимое мультимедиа. Вы также можете вызывать эти элементы управления транспортом через свой собственный пользовательский интерфейс, используя экземпляр MediaControllerCompat используя это getTransportControls() метод

Подробнее здесь MediaButtonReceiver

Другие вопросы по тегам