es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reproducir un video desde una URL y validar si se ha visto el video completo.

Tengo este json y tengo que reproducir un videoinsertar descripción de la imagen aquí

¿Cuál es la mejor manera de reproducir el video y validar o verificar si el usuario ha visto todo el video?
El video podría ser (Tiktok – Vimeo – Dayli Motion) pero no un video de Youtube.

Intenté usar AVPlayer pero no funciona:

    let videoURL = NSURL(string: "https://vimeo.com/601097657")
    let player = AVPlayer(url: videoURL! as URL)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }

Creo que la posible solución podría ser un webView, pero no estoy seguro/a si es posible validar si el usuario ha visto todo el video

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para reproducir un video y validar si el usuario lo ha visto

    La mejor manera de reproducir un video y validar o comprobar si el usuario ha visto todo el video sería utilizar un reproductor de video de terceros que proporcione una API para realizar un seguimiento de los eventos del video, como la finalización del mismo.

    Por ejemplo, se podría utilizar la API del reproductor de Vimeo para reproducir el video de Vimeo desde el JSON y realizar un seguimiento cuando el video se haya completado.

    Alternativamente, se puede utilizar un WebView para reproducir el video y realizar un seguimiento de la finalización del video utilizando JavaScript. Por ejemplo, se podría utilizar la API del reproductor de Vimeo para incrustar el video en el WebView y realizar un seguimiento de la finalización del video utilizando JavaScript.

    Aquí tienes un ejemplo utilizando la API de Vimeo para reproducir un video de Vimeo y realizar un seguimiento de su finalización:

    import VimeoNetworking
    
    let videoId = "123456789" // Reemplaza esto con el ID del video de Vimeo obtenido del JSON
    let player = VIMVideoPlayer()
    
    player.ready { [weak player] in
      player?.play()
    }
    
    player.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, preferredTimescale: 1)) { [weak player] time in
      if time.seconds >= player?.duration.seconds {
        // El video se ha completado
      }
    }
    
    player.setVideoIdentifier(videoId)
    player.play()
    

    En este ejemplo, estamos utilizando la biblioteca de VimeoNetworking para reproducir el video y realizar un seguimiento de su finalización. Primero creamos una instancia de VIMVideoPlayer y luego configuramos una clausura ready que comienza a reproducir el video.

    También agregamos un observador de tiempo periódico que verifica el tiempo transcurrido del video cada segundo. Cuando el tiempo transcurrido es mayor o igual a la duración del video, sabemos que el video está completo, y podemos realizar las acciones necesarias, como realizar un seguimiento de que el usuario ha visto todo el video.

    Es importante tener en cuenta que esta solución requiere que el video esté alojado en un servidor que proporcione una API para realizar un seguimiento de los eventos del video. Si el video se aloja en el propio servidor o en un servidor que no proporciona una API, puede ser más difícil realizar un seguimiento de la finalización del video utilizando este método.

    En ese caso, un WebView puede ser una mejor opción, aunque aún puede que no sea posible realizar un seguimiento de la finalización del video de manera implícita. Podrías hacer que el WebView muestre un mensaje de finalización o redirigir al usuario a una página de finalización después de que el video termine.

Comments are closed.