Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

185
Vistas
El acceso directo de Javascript para cambiar la velocidad de reproducción no funciona correctamente

Tengo una extensión de velocidad de reproducción de video súper simple. Debería aumentar la velocidad de reproducción en 0,25 cuando se hace Shift + MouseWheelUp y disminuir en 0,25 cuando se hace Shift + MouseWheelDown.

Cuando lo pruebo (en YouTube o en cualquier otro sitio de videos con una etiqueta de video HTML) tengo los siguientes problemas:

  • La velocidad de reproducción no aumenta en 0,25 cada vez que hago los eventos. En cambio, la velocidad aumenta/disminuye en una cantidad aleatoria por encima de 0,25.
  • Específicamente en Odysee.com, aparece el mensaje "No se pueden leer las propiedades de nulo (leyendo 'tasa de reproducción')" aunque presiono shift cuando la página tiene el elemento de video cargado.

Pongo el código a continuación. Siéntase libre de copiar todo y probarse a sí mismo.

¿Por qué ocurren estos problemas y cómo puedo solucionarlos?

manifiesto:

 { "manifest_version": 2, "name": "Playback Speed Controller", "version": "1.0", "description": "Change playback speed using Shift + Scroll Up/Down.", "icons": { "48": "icons/playback-speed-controller-48.png" }, "content_scripts": [ { "matches": [ "https://odysee.com/*", "http://odysee.com/*", "https://www.youtube.com/*" ], "js": [ "playspeed.js" ], "run_at": "document_end" } ] }

velocidad de juego.js

 vid = document.querySelector('video'); document.addEventListener('keydown', changeSpeed); function changeSpeed(ke) { if (ke.shiftKey) { document.addEventListener('wheel', function (se) { if (se.deltaY < 0) { increaseSpeed(); } else if (se.deltaY > 0) { decreaseSpeed(); } }) } } function decreaseSpeed() { vid.playbackRate -= 0.25; } function increaseSpeed() { vid.playbackRate += 0.25; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Está agregando un nuevo oyente de rueda cada vez que se presiona shiftKey, por lo que todos estos oyentes anteriores se ejecutan para siempre y se activan en un desplazamiento de rueda y aplican sus cambios a la velocidad.

La solución es eliminar keydown y usar un oyente de wheel global que verifique shiftKey :

 document.addEventListener('wheel', e => { if (e.shiftKey) { vid.playbackRate -= Math.sign(e.deltaY) * .25; } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda