Colegas 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 a...

Pregunta de la clase:
this
José Armando Gutiérrez Araujo

José Armando Gutiérrez Araujo

Pregunta
studenthace 5 años

Colegas 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()
5 respuestas
para escribir tu comentario
    José Armando Gutiérrez Araujo

    José Armando Gutiérrez Araujo

    studenthace 5 años

    Ahora si entiendo, muchas gracias por el apoyo!!

    Sebastian Gonzalez

    Sebastian Gonzalez

    studenthace 5 años

    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

    José Armando Gutiérrez Araujo

    studenthace 5 años

    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

    José Armando Gutiérrez Araujo

    studenthace 5 años

    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

    Sebastian Gonzalez

    studenthace 5 años

    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..

Curso Profesional de JavaScript

Curso Profesional de JavaScript

Mejora tus habilidades en Javascript. Conoce Typescript y cómo puedes ocuparlo para mejorar el control de tus variables. Comprende conceptos avanzados que te permitan plantear mejores soluciones en tu código. Conoce las APIs del DOM y descubre cómo puedes organizar mejor tu código utilizando patrones de diseño.

Curso Profesional de JavaScript

Curso Profesional de JavaScript

Mejora tus habilidades en Javascript. Conoce Typescript y cómo puedes ocuparlo para mejorar el control de tus variables. Comprende conceptos avanzados que te permitan plantear mejores soluciones en tu código. Conoce las APIs del DOM y descubre cómo puedes organizar mejor tu código utilizando patrones de diseño.