У меня есть очень простое приложение для Android, предназначенное для непрерывной потоковой передачи одного живого URL-адреса M3U8. Однако через некоторое время (минуты или часы) видео иногда зависает.
Как определить, что видео перестало воспроизводиться в реальном времени, и автоматически обновить проигрыватель для возобновления потоковой передачи?< /p>
Я попробовал проверить player.STATE_ENDED, но это не дало результата.
Будем очень признательны за любые предложения или рекомендации по решению этой проблемы!< /p>
@UnstableApi
private fun initializePlayer() {
exoPlayer = ExoPlayer.Builder(this).build().apply {
binding.playerView.player = this
val mediaSource = HlsMediaSource.Factory(DefaultHttpDataSource.Factory())
.createMediaSource(MediaItem.fromUri(STREAM_URL))
setMediaSource(mediaSource)
playWhenReady = true
prepare()
addListener(object : Player.Listener {
override fun onPlaybackStateChanged(playbackState: Int) {
if (playbackState == Player.STATE_ENDED) {
restartStream()
}
}
})
}
}
@UnstableApi
private fun restartStream() {
exoPlayer?.let {
it.stop()
it.clearMediaItems()
val mediaSource = HlsMediaSource.Factory(DefaultHttpDataSource.Factory())
.createMediaSource(MediaItem.fromUri(STREAM_URL))
it.setMediaSource(mediaSource)
it.prepare()
it.playWhenReady = true
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -streaming
Перезагрузите/обновите exoplayer, если видео зависает/останавливается (прямая трансляция) ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Команда FFMPEG выполняется, но прямая трансляция YouTube не отображается
Anonymous » » в форуме Python - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-