Обсуждения » Хотелки

那位大佬可以帮忙给 懒人听书 弄个倍速播放不。

那位大佬可以帮忙给 懒人听书 弄个倍速播放不。

懒人听书Web 太不给力了,大家都有倍速播放了,可是就是不加……

随手写了一个,每次步进0.25倍速,不会有提示也不会有意外处理,就算你把速度调到负的或者不支持的几十倍它也不会告诉你错误,想改哪里就那么几个字随便看看自己改就是了

// ==UserScript==
// @name         懒人听书Web调速
// @namespace    indefined
// @version      0.1
// @description  自定义调速,Z键:原速;X键:减速;C键:加速;
// @author       indefined
// @include      http://www.lrts.me/playlist
// @include      https://www.lrts.me/playlist
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    document.addEventListener('keydown',e=>{
        if (e.key=='z') {
            const audio = document.querySelector('audio');
            if(audio) audio.playbackRate = 1;
        }
        else if (e.key=='x') {
            const audio = document.querySelector('audio');
            if(audio) audio.playbackRate -= 0.25;
        }
        else if (e.key=='c') {
            const audio = document.querySelector('audio');
            if(audio) audio.playbackRate += 0.25;
        }
    });
})();

@indefined 谢谢。有没有办法实现下一集的时候也保持倍速播放…… 主要就是想要可以连续的倍速播放。

连续倍速只能在网页没关闭自动换集的情况下有效,下次打开网页或者手动换集仍然需要手动调一次,网页没关闭也不知道会不会有意外情况导致失效,懒得折腾太多能用就用吧

// ==UserScript==
// @name         懒人听书Web调速
// @namespace    indefined
// @version      0.1.1
// @description  自定义调速,Z键:原速;X键:减速;C键:加速;
// @author       indefined
// @include      http://www.lrts.me/playlist
// @include      https://www.lrts.me/playlist
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    let nowRate = 1;
    function setRate(rate) {
        if (isNaN(rate)) rate = nowRate;
        const audio = document.querySelector('audio');
        if(audio) {
            audio.playbackRate = nowRate = rate;
            audio.onended = ()=>setTimeout(setRate,10);
        }
    }
    document.addEventListener('keydown',e=>{
        if (e.key=='z') {
            setRate(1);
        }
        else if (e.key=='x') {
            setRate(nowRate-0.25);
        }
        else if (e.key=='c') {
            setRate(nowRate+0.25);
        }
    });
})();

Ответить

Войдите, чтобы ответить.