Настройка громкости

Библиотека Noty в JavaScript позволяет создавать уведомления с широкой кастомизацией, включая визуальные эффекты, положение на экране, тайминги и звуковое сопровождение. Управление звуком уведомлений реализуется через опцию audio и методы управления громкостью.

Основные параметры звука

  1. audio – основной параметр для включения звукового сопровождения уведомления. Может принимать следующие значения:

    • true – уведомление проигрывает звук по умолчанию.
    • false – звук отключен.
    • Объект вида { src: 'url_файла', volume: 0.5 } – позволяет указать кастомный аудиофайл и уровень громкости от 0 до 1.

Пример использования:

new Noty({
    text: 'Сообщение с кастомным звуком',
    type: 'success',
    audio: {
        src: '/sounds/notification.mp3',
        volume: 0.7
    },
    timeout: 3000
}).show();

В этом примере уведомление будет воспроизводить звук с уровнем громкости 70% от максимального значения.

Настройка глобальной громкости

Noty позволяет задавать глобальный уровень громкости для всех уведомлений через объект конфигурации Noty.overrideDefaults. Это особенно полезно, когда требуется единая громкость для разных типов уведомлений.

Noty.overrideDefaults({
    audio: {
        volume: 0.3
    }
});

После этого все уведомления будут воспроизводить звук на уровне 30% от максимума, если не указано иное для конкретного уведомления.

Динамическое управление громкостью

Громкость можно менять динамически через доступ к аудиоэлементу после создания уведомления. Для этого используется событие onShow, которое срабатывает при показе уведомления:

const notification = new Noty({
    text: 'Регулировка громкости в реальном времени',
    type: 'alert',
    audio: { src: '/sounds/alert.mp3', volume: 1 }
});

notification.on('onShow', function() {
    const audioElement = this.audio;
    if(audioElement) {
        audioElement.volume = 0.5; // понижение громкости на 50%
    }
});

notification.show();

Такой подход позволяет изменять громкость в зависимости от контекста: текущего уровня звука пользователя, типа уведомления или времени суток.

Поддержка нескольких звуков

Для разных типов уведомлений (success, error, warning, info) можно указать отдельные аудиофайлы и уровни громкости:

const sounds = {
    success: { src: '/sounds/success.mp3', volume: 0.6 },
    error: { src: '/sounds/error.mp3', volume: 0.9 },
    warning: { src: '/sounds/warning.mp3', volume: 0.7 },
    info: { src: '/sounds/info.mp3', volume: 0.5 }
};

function createNotification(type, message) {
    new Noty({
        text: message,
        type: type,
        audio: sounds[type]
    }).show();
}

createNotification('error', 'Произошла ошибка!');

Это обеспечивает тонкую настройку звукового сопровождения и предотвращает слишком громкое уведомление для менее критичных событий.

Особенности работы на разных браузерах

  • Автоплей аудио может быть заблокирован браузером, если уведомление создаётся без пользовательского взаимодействия. В таких случаях звук не проиграется до клика или другого действия пользователя.
  • Значение volume влияет только на уровень громкости в пределах HTMLAudioElement, не изменяя системные настройки пользователя.
  • Поддерживаются форматы mp3, wav, ogg — выбор зависит от целевых браузеров.

Интеграция с другими событиями

Управление громкостью удобно комбинировать с другими методами Noty, например:

  • onClose – остановка воспроизведения звука при закрытии уведомления.
  • onClick – изменение громкости или повторное воспроизведение при клике на уведомление.

Пример:

new Noty({
    text: 'Нажмите, чтобы увеличить громкость',
    audio: { src: '/sounds/alert.mp3', volume: 0.3 }
}).on('onClick', function() {
    if(this.audio) this.audio.volume = 1; // увеличение громкости до 100%
}).show();

Рекомендации по использованию

  • Для пользовательского комфорта не рекомендуется устанавливать громкость выше 0.8.
  • Различные типы уведомлений должны иметь отличительные аудиофайлы и уровни громкости, чтобы пользователь сразу различал важность события.
  • Всегда тестировать уведомления в целевых браузерах, чтобы убедиться в корректной работе аудио.

Гибкая настройка громкости в Noty позволяет создавать удобные и безопасные аудиосигналы, адаптированные под конкретный сценарий работы приложения и предпочтения пользователей.