Я создаю музыкальный проигрыватель, такой как Spotify, и пытался достичь функциональности, когда песня продолжает воспроизводиться чуть выше BottomNavigationBar
при навигации по приложению и даже когда действие / фрагмент, который имеет элементы управления, обложку альбома ивсе закрыто. Поэтому, когда я попытался передать экземпляр SimpleExoPlayer из действия, которое инициализировало проигрыватель, фрагменту в домашнем действии моего приложения через Intent , как
...
override fun onBackPressed() {
super.onBackPressed()
val intent = Intent()
intent.putExtra(RETURN_BACK_TO_LIBRARY_FRAG, TransferablePlayer(player as SimpleExoPlayer))
setResult(101, intent)
finish()
}
...
TransferablePlayer является Parcelable
...
@Parcelize
data class TransferablePlayer(val player: @RawValue SimpleExoPlayer): Parcelable
...
, тогда я получил следующую ошибку
java.lang.RuntimeException: Parcel: невозможно маршалировать значение com. google.android.exoplayer2.SimpleExoPlayer@91a2309
, что просто означает, что класс SimpleExoPlayer не является Serializable
и, следовательно, не может быть пропущен через Intent .
Есть ли способ перемещать один и тот же экземпляр SimpleExoPlayer вокруг действий или есть какой-нибудь лучший подход для достижения тех же результатов?