【发布时间】:2021-12-30 06:47:22
【问题描述】:
我有一个超级简单的视频播放速度扩展。当 Shift + MouseWheelUp 完成时,播放速度应该增加 0.25,当 Shift + MouseWheelDown 完成时,它应该减少 0.25。
当我测试它(在 YouTube 或任何其他带有 HTML 视频标签的视频网站上)时,我遇到了以下问题:
- 每次我执行这些事件时,播放速度都不会增加 0.25。相反,速度会随机增加/减少 0.25 以上。
- 特别是在 Odysee.com 上,我得到“无法读取 null 属性(读取 'playbackRate')”,即使我在页面加载了视频元素时按了 shift。
我把代码放在下面。随意复制所有内容并进行测试。
为什么会出现这些问题,我该如何解决?
清单:
{
"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"
}
]
}
playspeed.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;
}
【问题讨论】:
标签: javascript google-chrome-extension dom-events html5-video firefox-addon