AudioPlayerLib

Library for ADDING and PLAYING AUDIO anywhere you need (Global Player)

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.greasyfork.org/scripts/490601/1347581/AudioPlayerLib.js

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

Advertisement:

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

Advertisement:

// Library for ADDING and PLAYING AUDIO anywhere you need
/*global player*/

"use strict";

window.player = {};

player.play = function (
    source,
    { volume = 0.5, controls = false, removePlayerAfterPlayed = true },
    insertNode = document.body,
    referenceNode = null,
) {
    return new Promise((resolve) => {
        const player = document.createElement("audio");
        player.addEventListener("ended", () => {
            if (removePlayerAfterPlayed) {
                this.remove(player.id);
            }
            resolve(player);
        });
        player.id = Math.random().toString(32).substring(2);
        player.src = source;
        player.autoplay = true;
        player.controls = controls;
        player.volume = volume;
        insertNode.insertBefore(player, referenceNode);
    });
};

player.remove = function (id) {
    document.getElementById(id).remove();
};