Как передать экземпляр SimpleExoPlayer между двумя действиями? - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю музыкальный проигрыватель, такой как 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 вокруг действий или есть какой-нибудь лучший подход для достижения тех же результатов?

...