Как плавно зациклить видео в Android Studio

#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 запуска событий некоторого типа вызывает кратковременную паузу в цикле. Просто вернитесь к началу, когда вам понадобится эффект цикла.