Кнопки 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