#android #loops #kotlin #video #android-mediaplayer
#Android #циклы #kotlin #Видео #android-mediaplayer
Вопрос:
В настоящее время я создаю приложение fitniss в Android Studio, и для каждого упражнения в видеообзоре воспроизводится цикл видео
Теперь моя проблема в том, что цикл не является бесшовным, после каждого воспроизведения происходит короткий перерыв. Видео не могут быть локальными, потому что приложение станет слишком большим для playstore
Мой код в Kotlin:
private fun setExerciseVideo(){
vvVideo.visibility = View.VISIBLE
val uri: Uri = Uri.parse(exerciseList![currentExercisePosition 1].getVideo())
vvVideo.setVideoURI(uri)
vvVideo.start()
vvVideo.setOnPreparedListener {
mMediaPlayer = it
mMediaPlayer!!.isLooping = true
}
}
Ответ №1:
Приведенный выше код выглядит хорошо, но проблема может заключаться в порядке выполнения кода.
Что произойдет, если вы перейдете .setVideoURI(uri)
.start()
после setOnPreparedListener
?
Если приведенное выше предложение не работает, вы также можете попробовать это:
val uri: Uri = Uri.parse(exerciseList![currentExercisePosition 1].getVideo())
vvVideo.setVideoURI(uri)
vvVideo.setOnPreparedListener {
mMediaPlayer = it
mMediaPlayer!!.isLooping = true
mMediaPlayer!!.start()
}
Комментарии:
1. Нет ли способа обнаружить видео
current time
иtotal time
? Для плавного зацикливания пользователь может попробовать использовать таймер для проверки текущего времени видео и просто стремиться к нулевому времени, когда время видео равно его общему времени. ОжиданиеvideoEnded
запуска событий некоторого типа вызывает кратковременную паузу в цикле. Просто вернитесь к началу, когда вам понадобится эффект цикла.