Я использую ExoPlayer для воспроизведения мультимедиа в приложении Android.
Когда вы открываете видео в моем приложении, я хочу, чтобы видео было видно, а вы слышите звук - как на любом обычном носителеplayer.
Однако, когда вы закрываете приложение, я хочу, чтобы звук продолжал воспроизводиться в фоновом режиме с уведомлением о воспроизведении, приостановке и перезапуске содержимого.
Я знаю, что яможет заставить аудио вести себя таким образом, если экземпляр ExoPlayer создан внутри Сервиса.Однако для того, чтобы видео было видимым, экземпляр ExoPlayer должен быть передан PlayerView, а PlayerView должен работать в потоке пользовательского интерфейса.
Если экземпляр ExoPlayer определен в службе и выполняется в служберабочий поток, в то время как PlayerView определен в Activity и выполняется в потоке пользовательского интерфейса, тогда как я могу передать экземпляр ExoPlayer в PlayerView?AIDL ограничен примитивными типами (String, long, boolean и т. Д.), Поэтому это не представляется возможным.
Я бы предпочел, чтобы звук не останавливался и не перезапускался при закрытии приложения (как это было быслучай, если у меня было два отдельных игрока - один в Сервисе и один в потоке пользовательского интерфейса).Мне бы хотелось, чтобы служба обрабатывала всю загрузку мультимедиа, декодирование и воспроизведение звука, и я бы хотела каким-то образом привязаться к службе, чтобы отображать декодированные кадры, возвращаемые из ExoPlayer.