
Cayo Legal
PreguntaNo me funciona el autoplay, por que puede ser?
AutoPlay.js
function AutoPlay(){ } AutoPlay.prototype.run = function(player){ player.mute() player.play() } export default AutoPlay
MediaPlayer.js
//basicamente con los plugins, estamos diciendole que es opcional, porque si nos pasan plugins pues bien, tendremos //plugins, si no nos pasan ningun plugin y omiten el envio, pues this.plugins será un array vacío function MediaPlayer(config) { this.media = config.el; this.plugins = config.plugins || [] this._initplugins } //método prototipo para inicializar los plugins MediaPlayer.prototype._initplugins = function(){ this._initplugins.forEach( plugin => { plugin.run(this) }) } //lo que hacemos aquí, básicamente es que en la funcion madre, estamos declarando que el parámetro del objeto que se pase en las instancias se guardará en el atributo media, y en este caso estamos instanciando con la etiqueta video de HTML que tiene consigo un método o una API para reproducir los vídeos que es el método play, //la etiqueta video tiene varios metodos o atributos consigo para controlar el video pasado por HTML MediaPlayer.prototype.play = function(){ this.media.play() } //lo mismo que play pero solo que lo pausa MediaPlayer.prototype.pause = function() { this.media.pause() } //aquí hacemos una funcion que preguntamos si el video esta pausado, que ejecute el método play, si no esta //pausado, que lo pause MediaPlayer.prototype.togglePlay = function() { if(this.media.paused) { this.media.play() } else { this.media.pause() } } MediaPlayer.prototype.mute = function(){ this.media.muted = true } MediaPlayer.prototype.unmute = function() { this.media.muted = false } MediaPlayer.prototype.toggleMute = function() { if(this.media.muted) { this.media.unmute() } else { this.media.mute() } } export default MediaPlayer;
index.js
import MediaPlayer from "./MediaPlayer.js" import AutoPlay from "./plugins/AutoPlay.js" const video = document.querySelector('video') const boton = document.querySelector('button') const boton_muted = document.querySelector('#mute-unmute') //instanciamos el objeto const player = new MediaPlayer({el: video, plugins: [ new AutoPlay() ]}) //cuando se de click en el video, ejecutaremos la función que alterna entre play y pause boton.onclick = () => player.togglePlay() //boton_muted.onclick = () => player.toggleMute() boton_muted.onclick = () => { player.media.muted ? player.unmute() : player.mute() }