JS властивість Event.volumechange


Загальний опис

Подія volumechange виникає, коли змінюється рівень гучності аудіо або відео елемента, або коли звук вимикається чи вмикається (mute/unmute). Ця подія може бути корисною для реалізації динамічних елементів інтерфейсу, наприклад, оновлення візуальних індикаторів гучності або для зберігання налаштувань користувача.

Щоб відстежити подію volumechange, використовується метод addEventListener, приклад:

const videoElement = document.querySelector('video');
videoElement.addEventListener('volumechange', (event) => {
  console.log('Гучність змінилася:', videoElement.volume);
});

У цьому прикладі, коли гучність змінюється, у консоль виводиться нове значення рівня гучності. Рівень гучності можна отримати через властивість volume елемента, яка знаходиться у діапазоні від 0.0 (мінімум, без звуку) до 1.0 (максимум). Якщо звук повністю вимкнено, властивість muted буде дорівнювати true.

Окрім прослуховування зміни гучності, можна також програмно змінювати гучність за допомогою властивості volume:

videoElement.volume = 0.5; // встановлення гучності на 50%

Також можна ввімкнути або вимкнути звук за допомогою властивості muted:

videoElement.muted = true; // вимкнення звуку

Подія volumechange спрацьовує як при зміні рівня гучності користувачем, так і при програмних змінах через код. Це дозволяє забезпечити зручну синхронізацію між інтерфейсом користувача та внутрішньою логікою програми.

Зазвичай ця подія використовується для оновлення елементів управління звуком у програвачах відео та аудіо, де потрібно динамічно відображати рівень гучності або зміну стану звуку.

автор: Bond

Порада

Можна додати власні контроли для гучності і вимкнення звуку, використовуючи прості повзунки або перемикачі, а подію volumechange — для синхронізації між цими контролями та поведінкою елемента.

автор: Bond
Порада

Важливо враховувати, що гучність може змінюватися поступово (через затримку між кліками або перетягуванням повзунка), тому реакцію на подію варто оптимізувати, щоб уникнути частого виклику важких операцій.

автор: Bond
Порада

Для збереження налаштувань гучності користувача після оновлення сторінки можна використовувати локальне сховище (localStorage). При кожній події volumechange зберігайте поточне значення, а при завантаженні сторінки використовуйте його для налаштування елемента.

автор: Bond

Синтаксис

element.addEventListener('volumechange', function(event) {
  // Дії після зміни гучності
});

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
66 57 11.1 53 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
66 66 57 11.3
Підтримка: серверні переглядачі
Переглядач Node.js Deno
15.0.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі поточні налаштування гучності користувача зберігаються в localStorage при кожній зміні. Коли сторінка завантажується, ці налаштування відновлюються, дозволяючи зберігати користувацький досвід після перезавантаження сторінки або повернення до неї.

HTML

<video width="320" height="180" controls>
    <source src="film.mp4" type="video/mp4">
</video>

JS

const videoElement = document.querySelector('video');

// Зберігаємо налаштування гучності користувача в localStorage
videoElement.addEventListener('volumechange', () => {
  const userVolume = {
    volume: videoElement.volume,
    muted: videoElement.muted,
  };
  localStorage.setItem('userVolume', JSON.stringify(userVolume));
});

// Встановлюємо збережені налаштування при завантаженні сторінки
const savedVolume = JSON.parse(localStorage.getItem('userVolume'));
if (savedVolume) {
  videoElement.volume = savedVolume.volume;
  videoElement.muted = savedVolume.muted;
}
автор: Bond

Цей приклад показує, як динамічно відображати рівень гучності або статус вимкнення звуку в HTML-елементі, наприклад, текстовому індикаторі. При кожній зміні гучності (включаючи вимкнення звуку) індикатор оновлюється, показуючи актуальний стан.

HTML

<div id="volume-indicator">Демонстраційний елемент</div>
<video width="320" height="180" controls>
    <source src="film.mp4" type="video/mp4">
</video>

JS

const videoElement = document.querySelector('video');
const volumeIndicator = document.getElementById('volume-indicator');

// Відображаємо рівень гучності на індикаторі
videoElement.addEventListener('volumechange', () => {
  const volumePercent = Math.round(videoElement.volume * 100);
  volumeIndicator.textContent = `Гучність: ${volumePercent}%`;

  if (videoElement.muted) {
    volumeIndicator.textContent = 'Звук вимкнено';
  }
});
автор: Bond

У цьому прикладі користувач може взаємодіяти з відео за допомогою повзунка для регулювання гучності та кнопки для вимкнення/ввімкнення звуку. При кожній зміні гучності (через повзунок або вимкнення звуку) подія volumechange автоматично оновлює індикатор поточної гучності і змінює текст кнопки залежно від стану звуку. Це дозволяє користувачеві легко керувати звуком відео і бачити зміни в реальному часі.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід