José Armando Gutiérrez Araujo
PreguntaColegas una duda, por que los métodos de mute() y unmuted() los intento utilizar en MediaPlayer y me dice que no están definidos? si es ahi donde fueron creados, pero en index.js si se pueden utilizar como vemos que lo realizó el profesor, les dejo mi código de MediaPlayer:
function MediaPlayer(config) { this.media = config.el this.plugins = config.plugins || [] this._initPlugins() } MediaPlayer.prototype._initPlugins = function() { this.plugins.forEach(plugin => { plugin.run(this) }) } MediaPlayer.prototype.play = function() { this.media.play() } MediaPlayer.prototype.pause = function() { this.media.pause() } MediaPlayer.prototype.tooglePlay = 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.toogleMute = function() { if (this.media.muted) { this.media.mute() } else { this.media.unmute() } } export default MediaPlayer
También mi código de index.js
import MediaPlayer from './MediaPlayer.js' import AutoPlay from './plugins/AutoPlay.js' const video = document.querySelector("video") const button = document.querySelector("button") const muteButton = document.querySelector("#muteButton") const player = new MediaPlayer({ el: video, plugins: [new AutoPlay()] }) button.onclick = () => player.tooglePlay() muteButton.onclick = () => player.toogleMute()
José Armando Gutiérrez Araujo
Ahora si entiendo, muchas gracias por el apoyo!!

Sebastian Gonzalez
Cuando es this.media.play estas llamando al video como tal y el no tiene la funcion que creamos play y pause, esas funciones pertenecen como tal a la clase MediaPlayer, es por eso que no funciona porque es como si fuera undefined, espero se entienda un poco mejor.
Lo del if del mute y unmuted no entiendo como tal que sucede, si me explicas con gusto te colaboro
José Armando Gutiérrez Araujo
Perdón quise decir que en el this.media.play u pause me funciona pero this.media.unmute y mute no** si se refieren a los mismo y están construidos de igual manera.
José Armando Gutiérrez Araujo
Vale en el if de this.media.muted ponienod solo this.unmute() y this.mute() y funcionó :) Mi duda es porque yo pongo en el if this.media.play() y this.media.pause() y si funciona pero this.media.unmute() y this.media.mute() cuando ambos se refieren al video? E incluso es así como lo hizo el profesor

Sebastian Gonzalez
Bueno lo primero que noto es que en el if del MediaPlayer va
this.play() y this.pause()
porque solo necesitas llamarlos desde el MediaPlayer, no desde .media, si quieres para entenderlo usa un debugger y en el navegador inspecciona quien es this, es muy util para entenderlo.
Al final el export lo tienes pegado
exportdefault MediaPlayer // La forma correcta es export default MediaPlayer
Lo otro es que el if que hiciste de mute y unmute quizas te pueda generar problema con el autoPlay del video aunque lo dudo la verdad, sin embargo intenta probarlo con el a ver si te funciona o no..