Как сделать регулятор громкости css

Обновлено: 08.07.2024

подскажите пожалуйста, как малой кровью сделать ползунок, регулирующий уровень громкости в мувике.


о чем это я:
На сайте в разделе "музыка", можно запустить и прослушать mp3-треки, но как сделать общий регулятор громкости который будет регулировать громкость, независимо от того, какой трек проигрывается. А то во всех описанях по созданию регулятора громкости, имеется ввиду регулирование громкости конкретного трека. А мне нужен "общий". т.е. чтобы я просто вставил регулятор куда-то в сцену, и он мне просто регулировал громкость, что бы не проигрывалось в мувике в данный момент.

Громкость звукового устройства определяет, насколько громко воспроизводятся звуки, как для текущего приложения, так и для всей операционной системы. Эту громкость можно регулировать для левого и правого каналов независимо с помощью функций Windows API.

Многие компьютеры оснащены звуковой картой или встроенным чипсетом, который позволяет воспроизводить цифровое аудио, например, в формате аудиофайла wav (WAV). Некоторые аппаратные средства обеспечивают одноканальный или моноканальный выход. Другое оборудование обеспечивает стереозвук с отдельными аудиоканалами для левого и правого динамиков. Для некоторых программных приложений вы можете захотеть управлять громкостью этих каналов независимо или вместе.

Более старые версии Microsoft Windows позволяют изменять громкость для всех приложений с помощью функций Windows API, которые вы можете вызывать с помощью служб вызова платформы (P/Invoke). Более современные версии операционной системы позволяют независимо изменять громкость звукового устройства для приложений, позволяя пользователю уменьшать громкость для некоторых программ и увеличивать ее для других программ.

В этой статье мы создадим проект Windows Forms, который позволит изменять звук. Мы включим возможность синхронизации левого и правого каналов или их изменения независимо. Мы также добавим кнопку отключения звука и кнопку, которая воспроизводит звук.

Функции Windows API

Мы будем использовать две функции Windows API для работы. Первый - это waveOutGetVolume. Он дает вам 32-разрядное целое значение, представляющее объемы двух каналов. Нижние шестнадцать битов содержат значение от нуля до 65 535. Ноль указывает на тишину, а 65 535 - максимально возможная громкость. Более высокие шестнадцать битов содержат аналогичное значение для правого канала. Для моно девайсов эти два значения совпадают.

Функция waveOutSetVolume позволяет изменять громкость. Опять же, вы используете 32-разрядное целое число с громкостью левого канала в битах нижнего порядка и громкостью правого канала в битах верхнего порядка.

Теперь вы можете добавить два объявления функций Windows API. Каждый из них использует целочисленный параметр без знака для громкости. Для прлучения громкости это выходной параметр.

Хотя это не имеет прямого отношения к функциям громкости устройства wave, мы также добавим кнопку отключения звука в пример программы. Я описал использование этой функции в предыдущей заметке Базовый регулятор громкости, поэтому не буду повторять информацию здесь. Чтобы добавить функцию отключения звука, добавьте следующее:

Дизайн формы Windows

Теперь мы можем добавить некоторые элементы управления в форму Windows, которые позволят пользователю изменять громкость и прослушивать эффект. Нам нужно пять элементов управления. Две панели треков позволят изменять громкость левого и правого каналов. Мы установим флажок, чтобы указать, хотим ли мы, чтобы два канала были синхронизированы автоматически. Наконец, нам нужны две кнопки. Одна включает и выключает звук. Другая воспроизводит тестовый звук, чтобы вы могли услышать изменение громкости.

На рисунке ниже показана возможная компоновка элементов управления.

Получение текущего уровня громкости

При первой загрузке формы мы хотим, чтобы на панелях треков отображалась текущая громкость для левого и правого каналов. Мы будем использовать функцию wavOutGetVolume для извлечения этой объединенной информации. Чтобы получить громкость левого канала, мы можем использовать логический побитовый оператор AND для удаления битов более высокого порядка. Для правильного канала нам нужно сдвинуть биты вправо перед использованием оператора AND. Это дает нам два шестнадцатибитных значения, которые мы можем применить к свойствам значения трекбара.

Код для этого показан ниже. Добавьте вызов ShowCurrentVolume в конструктор и создайте новый метод следующим образом:

Автобалансировка

Для флажка Автобалансировки требуется небольшой код для события CheckChanged. Если флажок снят, никаких действий не требуется, так как громкость не изменяется. Когда флажок установлен, нам нужно убедиться, что оба канала имеют одинаковую громкость. Мы могли бы сделать это, изменив нижний из двух каналов, чтобы он соответствовал верхнему, изменив больший объем, чтобы он соответствовал нижнему, или переместив оба в среднее из двух. В примере приложения я решил усреднить две громкости.

Добавьте событие CheckChanged в флажок Автобалансировки и включите код, показанный ниже.

Метод setVolume использует waveOutSetVolume для установки громкости для каждого канала в соответствии со значениями на дорожках. 32-разрядное целое число вычисляется путем сдвига значения правого канала на шестнадцать мест влево, чтобы занять биты более высокого порядка, и добавления значения левого канала в биты более низкого порядка.

Управление левым и правым каналами

Когда значение в любой из трекбаров изменится, мы немедленно обновим громкость. Если флажок Автобалансировка установлен, мы изменим другую панель треков так, чтобы эти два значения совпадали. Чтобы включить эту функцию, добавьте события прокрутки на обе панели треков и включите приведенный ниже код:

Кнопка отключения звука

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

Кнопка воспроизведения

Наконец, нам нужно добавить код события щелчка для кнопки воспроизведения. Эта кнопка воспроизводит WAV-файл, чтобы можно было протестировать. Перед добавлением кода вам необходимо добавить WAV-файл в проект с помощью обозревателя решений. Достаточно любого файла, предоставленного Windows. После добавления используйте Обозреватель решений, чтобы переименовать файл в "Test.wav" и изменить свойство файла "Копировать в выходную папку" на "Копировать всегда".

Если файл теста доступен, добавьте следующий код в событие щелчка для кнопки.

Теперь вы можете выполнить программу и опробовать элементы управления. Если вы откроете утилиту микшера громкости Windows, вы увидите, что она отражает изменения громкости. В зависимости от используемой версии Windows изменения затронут либо основной уровень громкости для операционной системы, либо конкретный уровень для текущей программы. Обратите внимание, что микшер громкости показывает громкость более громкого из двух каналов для стереоустройств.

В общем, в Firefox давно уже нет регулятора громкости для HTML5 Audio. Для видео он есть, есть и для аудио, но не внедрённого в веб-страницу, а если просто файл открыть. А для аудио — только выключение. Регулировать можно только если нажать на элементы управления, и затем нажимать стрелки вверх и вниз.

Покопался в базлилле. Судя по этому посту они не хотят его делать вообще, и все баги с таким содержанием закрывают (пример).

Собственно, правильно ли я понял, что это так? Если так, может всем лором отписаться? Как они предлагают регулировать громкость, если ОС не предусматривает раздельного регулирования для каждого приложения? Или они — тайные агенты Поттеринга?


не хотят - и не будут, видимо, что печально. ну или надо подождать годик-другой


Да там полно багов с этими audio/video. Меня больше раздражает этот (не работает перемотка, если сервер не ответил заголовком Accept-Ranges: bytes) и этот (не позволяет слушать ogg-радио (icecast), воспроизведение прекращается когда начинает звучать следующий трек).


Мне их проигрывалка HTML5 не нравилась никогда. Я смотрю OGV, отматываю назад - видео начинает загружаться полностью заново. И как только я открываю страницу оно сразу загружается, а не спрашивает подтверждения.


> (не позволяет слушать ogg-радио (icecast), воспроизведение прекращается когда начинает звучать следующий трек)

Я то же самое наблюдаю со многими линуксовыми плеерами. Amarok и XMMS воспроизводят, mplayer не воспроизводил раньше, у Totem'а проблема с тегами, oggdec и ogg123 не воспроизводят.


Всегда воспроизводил, как минимум с 2007 года, что я пользуюсь этим вашим Линуксом. Тотем не пользовался, oggdec и ogg123 для воспроизведения радио не пробовал.


У меня mplayer с дистрибутива 2008 года не воспроизводит: после смены трека каждую секунду валятся ошибки в консоль, и ничего не звучит. Наверное, регрессия.

ZenitharChampion ★★★★★ ( 22.11.12 21:33:56 )
Последнее исправление: ZenitharChampion 22.11.12 21:35:10 (всего исправлений: 1)



Часовой пояс: UTC + 3 часа

Пассивный регулятор громкости

Здравствуйте!
Как сделать пассивный регулятор громкости.
У меня CD-проигрыватель выходное сопротивление припаять к регулятору громкости ALPS 100k (я уже его купил) и от регулятора соответственно к студийным мониторам.
Но мне сказали, что это не правильно, что якобы таким подключением могу спалить выход CD-проигрывателя.
Подскажите, пожалуйста как правильно сделать регулятор громкости для данной связки?

ахах) есть в школах специальные резисторы - регулируешие силу тока.. правда не особо посоветовал бы т.к. сгореть может. а то что сказали вам - бред я уверен что сжеч не выйдет даже если захотите

_________________
Юный котэ Паяльник.

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Чушь полнейшую Вам сказали. Ничего не сгорит при 100 кОм. Только регулировка будет оченно "кривая". Дело в том, что выходное сопротивление предыдущего каскада должно быть хотя бы в 10 раз меньше, чем входное сопротивление последующего. А у Вас - наоборот. Если входное сопротивление мониторов = 10 кОм, то сопротивление регулятора должно быть 1 кОм. Это сопротивление для CD-проигрывателя с выходным сопротивлением 50 Ом - тьфу, "семечки". Это первое.

Второе. Линейная зависимость регулировки громкости (которая равна квадрату подводимого напряжения) от положения движка переменного резистора получается при его экспоненциальной (антилогарифмической) зависимости. Для импортных переменных резисторов - это тип "А". Для отечественных - тип "В".

_________________
Выслушай и противную сторону, даже если она и противна

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Необходим быстродействующий преобразователь питания средней мощности с высоким КПД? Он должен быть компактным и недорогим? Решение – карбид-кремниевые модули средней мощности WolfPACK производства Wolfspeed. В статье рассмотрены основные особенности модулей WolfPACK и показано, что переход на эту универсальную и масштабируемую платформу позволяет не только быстро разработать новые устройства, но и без значительных затрат времени и средств модернизировать уже существующие схемы на традиционной элементной базе.

Приглашаем 27/01/2022 всех желающих посетить вебинар, посвященный двум наиболее растущим сегментам интегрированных источников питания – AC/DC малой мощности (1-20Вт) и сегменту решений PoL без изоляции. На вебинаре рассмотрим проблему выбора AC/DC в бюджетном сегменте и концепцию тестирования ускоренного старения, проведем сравнительный анализ подходов к интеграции AC/DC модулей. Сделаем обзор решений концепции POL с доисторических времен до современных технологий и средств для разработки и тестирования.

А что касается потенциометра вернее PRE-AMP то я вообще в шоке, обратите внимание какие бешеные цены, например: Goldpoint “The SA1 Passive Preamp”


Извини, брат, (меня модераторы часто одергивают за резкость) а тебе знакосочетания СП-3хх или СП-5хх не встречались? Или ты из-за бугра вещаешь (тогда сочувствую)?

_________________
от подписи отказался


А переменный резистор за 14 долларов - это разве не хамство? Выломай потенциометр из любого ящика и паяй куда тебе надо!

_________________
от подписи отказался

а тебе знакосочетания СП-3хх или СП-5хх не встречались? Или ты из-за бугра вещаешь (тогда сочувствую)?

Мало того, ты далее продолжаешь гнать бред, вернее полный бред:

почему ты решил что это хамство.

Потенциометрами фирмы ALPS используют большинство фирм изготавливающих Hi-Fi технику, также
пользуется, спросом среди аудифилов которые сами делают усилители. Цены на потенциометрии фирмы
ALPS актуальны, например 50k, 100k средняя стоимость которых от 10$ - 20$.

Читай, внимательно я не спрашивал где достать или откуда выломать потенциометр. Вопрос был задан
как правильно сделать пассивный регулятор громкости!

Возможности встроенных динамиков большинства ноутбуков весьма скромны и не то чтобы нормальной акустики, им часто недостает банальной громкости. Ее нехватка особенно ощущается при воспроизведении мультимедийного контента в браузерах. Как вариант, можно покопаться в настройках системных динамиков, впрочем, вы можете не найти в них для себя ничего такого, что позволило бы увеличить громкость звука, а если и найдете, может статься, что полученный результат вас не удовлетворит.

Volume Master — увеличиваем громкость в Сhrome выше нормы

Есть другой и вполне рабочий способ. Если вы пользуетесь Google Chrome, советуем обратить внимание на такое расширение как Volume Master. Предназначается этот бесплатный инструмент для увеличения громкости воспроизводимых через браузер видео или аудио. Простое в использовании и настройках, расширение позволяет программно увеличить громкость почти на 500 процентов. Загрузка и установка стандартны — из Магазина расширений Сhrome.

После установки Volume Master в правой части панели инструментов браузера появится иконка с изображением динамика.

Если кликнуть по ней левой кнопкой мыши, откроется панель с ползунком, перетаскивая который можно регулировать громкость в режиме реального времени. Минимальное значение шкалы составляет 10%, весь же диапазон шкалы составляет от 0% до 600%, в котором 100% является значением по умолчанию для браузера.

Собственно, это все настройки расширения. Несомненным плюсом является то, что Volume Master позволяет регулировать громкость для каждой вкладки отдельно, что же касается самого данного способа увеличения громкости, то тут есть свой минус. Поскольку усиление производится на программном уровне, установка ползунка выше 300-400% может вызвать помехи при воспроизведении контента, проявляющиеся характерным дребезжанием. Оптимальный баланс для каждой модели ноутбука свой, так что будьте внимательны.

Читайте также: