Greasy Fork is available in English.
显示音量变化。
当前为
// ==UserScript==
// @name YouTube - Display current volume
// @name:fr YouTube - Afficher le volume actuel
// @name:es YouTube - Mostrar el volumen actual
// @name:de YouTube - Aktuelle Lautstärke anzeigen
// @name:it YouTube - Visualizza il volume corrente
// @name:zh-CN YouTube - 显示当前音量
// @namespace https://gist.github.com/4lrick/7a069ce704be9ac95f00d8fb9c2c9bb2
// @version 1.3
// @description Displays the volume when it's changing.
// @description:fr Affiche le volume lorsqu'il change.
// @description:es Muestra el volumen cuando cambia.
// @description:de Zeigt die Lautstärke an, wenn sie sich ändert.
// @description:it Visualizza il volume quando cambia.
// @description:zh-CN 显示音量变化。
// @author 4lrick
// @match https://www.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant none
// @license GPL-3.0-only
// ==/UserScript==
(function() {
'use strict';
let volumeDisplayTimeout;
const VOLUME_DISPLAY_ID = 'ytp-video-volume';
const VOLUME_DISPLAY_DURATION = 1000;
const VOLUME_DISPLAY_STYLE = {
position: 'absolute',
top: '10%',
left: '50%',
transform: 'translateX(-50%)',
textAlign: 'center',
background: 'rgba(0, 0, 0, 0.5)',
color: '#eee',
fontSize: '175%',
zIndex: '19',
padding: '10px 20px',
borderRadius: '3%'
};
function createVolumeDisplay() {
const volumeDisplay = document.createElement('div');
volumeDisplay.id = VOLUME_DISPLAY_ID;
Object.assign(volumeDisplay.style, VOLUME_DISPLAY_STYLE);
return volumeDisplay;
}
function displayVolume(player) {
let volumeDisplay = document.getElementById(VOLUME_DISPLAY_ID);
if (!volumeDisplay) {
volumeDisplay = createVolumeDisplay();
player.appendChild(volumeDisplay);
}
volumeDisplay.textContent = `${player.getVolume()}%`;
volumeDisplay.style.display = 'block';
clearTimeout(volumeDisplayTimeout);
volumeDisplayTimeout = setTimeout(() => {
volumeDisplay.style.display = 'none';
}, VOLUME_DISPLAY_DURATION);
}
function checkVideoExists() {
const videoElement = document.querySelector('video');
const player = document.getElementById('movie_player');
if (!videoElement || !player) return;
videoElement.addEventListener('volumechange', () => displayVolume(player));
observer.disconnect();
}
const observer = new MutationObserver(checkVideoExists);
observer.observe(document.body, { childList: true, subtree: true });
})();