Я сейчас пытаюсь использовать Android MediaSession, но когда я хочу передать дополнительные данные пакета со стороны клиента на сторону сервера, наконец, я получаю пустой объект пакета на стороне сервера, я попробовал много способов достигните этого, но это все еще не работает. В дополнение к экспериментам с моим собственным проектом, я также попытался использовать проект android-UniversalMediaPlayer, но в итоге не получилось.
это код из демонстрационного примера Google android-UniversalMediaPlayer ,, но не последняя версия (я скачал его несколько месяцев назад):
https://github.com/googlesamples/android-UniversalMusicPlayer
Я отправляю новые созданные дополнения сюда на стороне клиента ,, и я только внес изменения в этом месте.
Client:
@Override
public void onMediaItemSelected(MediaBrowserCompat.MediaItem item) {
LogHelper.d(TAG, "onMediaItemSelected, mediaId=" + item.getMediaId());
if (item.isPlayable()) {
Bundle bundle = new Bundle();
bundle.putString("test_key", "my_test_data");
bundle.putInt("test_key_int", "2018");
MediaControllerCompat.getMediaController(MusicPlayerActivity.this).getTransportControls()
.playFromMediaId(item.getMediaId(), bundle);
} else if (item.isBrowsable()) {
navigateToBrowser(item.getMediaId());
} else {
LogHelper.w(TAG, "Ignoring MediaItem that is neither browsable nor playable: ",
"mediaId=", item.getMediaId());
}
}
Я отлаживаю здесь на стороне сервера, он может получить mediaId, но пакет пуст:
Server:
@Override
public void onPlayFromMediaId(String mediaId, Bundle extras) {
LogHelper.d(TAG, "playFromMediaId mediaId:", mediaId, " extras=", extras);
mQueueManager.setQueueFromMusic(mediaId);
handlePlayRequest();
}
Я также пытался использовать MediaController.sendCommand (команда String, Bundle bundle) и TransportControls.sendCustomAction (String action, Bundle bundle), на стороне сервера могут быть получены как команда, так и действие, но пакет все еще пуст.
Мое неправильное понимание этих методов, или способ, которым я создал объект пакета, неверен, или здесь есть ошибка в MediaSession?
Я очень смущен этим, и мой английский плохой, я надеюсь, что я правильно выразил свое значение, наконец, благодарен за ваш ответ.