Играть в мультимедиа с приложением в фоновом режиме.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Играть в мультимедиа с приложением в фоновом режиме.

Сообщение Anonymous »

Я сейчас использую библиотеку Media3 для воспроизведения контента, и все работает отлично, когда MediaController.play () запускается, когда приложение находится на переднем плане. < /p>
** Использование Case: **
Tracks из плейлистов не имеет медиаури (ссылка на фактическую .mp3). Мы обязаны получить список воспроизведения (скажем, с 30 треками), а затем принести URL для каждого данного трека. Проблема заключается в том, что полученный URL -адрес действителен всего в течение 2 минут. через поток) состояние игрока, и когда State_ed_ed, он получает URL -адрес следующего трека и воспроизводит его (mediaController.setMediaItems> Prepare ()> play ()) < /p>
Проблема: < /strong>
Когда приложение находится в фоновом режиме (экраны), а трек заканчивается, новый трек начинает играть Обновление. < /p>

Код: Выделить всё

Failed to start foreground android.app.ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false: service 'APPNAME.media.MediaService

Мне не хватает чего -то очевидного, или Media3 все еще взволнован, чтобы справиться с этими случаями, когда нам нужно получить медиаури по требованию
MedialiabraryService правильно устанавливается с данными разрешениями: < /p>

Код: Выделить всё






...







< /code>
Это функция, которая вызывается для воспроизведения контента: < /p>
    private fun playAppPlaylist(startAtIndex: Int = 0) {
val browser = this.browser ?: return
val items = browser.getChildren(
Catalog.AppPlaylist.path, 0, Int.MAX_VALUE, null
)
items.addListener({
val result = items.get()
val children = result.value!!

browser.setMediaItems(children)
browser.prepare()
if (startAtIndex != 0) browser.seekTo(startAtIndex, 0)
else browser.seekToDefaultPosition()
browser.play()
}, MoreExecutors.directExecutor())
}
< /code>
похоже на вызов browser.play () < /code>, когда приложение не на переднем плане запускает уведомление, которое вызывает ошибку.
Я пытался думать о Решения, где я не использую .play (), но controller.replacemediaitem () 
, но медиа не начинает играть, поскольку он был приостановлен, когда стал Player.state_end

Подробнее здесь: https://stackoverflow.com/questions/778 ... cestartnot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»