Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

181
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!