使用箭头键←和→(或J和L)的ARD Mediathek媒体播放器的默认向后/向前搜索间隔非常大,具体取决于视频长度(例如,对于视频时长两个小时,约70秒)。在我看来,这太过分了。这就是为什么我正在寻找一种方法来根据自己的喜好调整间隔。
我尝试修改
aria-valuenow
元素的 div.noUi-handle.noUi-handle-lower
属性值。
const valueNow = document.querySelectorAll('.noUi-handle.noUi-handle-lower')[0];
// seek backward 10 seconds
valueNow.setAttribute('aria-valuenow', valueNow.getAttribute('aria-valuenow') - 10);
// seek forward 10 seconds
valueNow.setAttribute('aria-valuenow', valueNow.getAttribute('aria-valuenow') + 10);
但这不行,我的值立刻又被覆盖了。此外,可能还有一种更优雅的方式。实施应作为 Tampermonkey 用户脚本完成。
更新:
我在这个JavaScript文件中找到了相关的代码部分。
改变
this.handleSeek(b.getCurrentTime() - Math.max(10, Math.floor(.01 * b.getDuration())));
到
this.handleSeek(b.getCurrentTime() - 10);
和
this.handleSeek(b.getCurrentTime() + Math.max(10, Math.floor(.01 * b.getDuration())));
到
this.handleSeek(b.getCurrentTime() + 10);
带来想要的结果。
当然,将文件的全部内容插入到 Tampermonkey 中就完全是矫枉过正了。所以问题是如何更有效地实施这两个小改变。
最简单的方法是获取脚本,替换这些行并使用 GM_addElement 将其注入页面:
// ==UserScript==
// @name Script override
// @namespace http://tampermonkey.net/
// @version 0.1
// @description .
// @author You
// @match https://www.ardmediathek.de/live*
// @icon https://www.google.com/s2/favicons?sz=64&domain=ardmediathek.de
// @grant GM_addElement
// @run-at document-start
// ==/UserScript==
fetch("3206.7523101b.js").then(res => res.text()).then( text => {
text = text.replaceAll('Math.max(10,Math.floor(.01*b.getDuration()))', '10');
GM_addElement('script', {
textContent: text,
});
});