Увеличьте громкость видеоизображения (youtube flash) с помощью JavaScript
Фоновая история. Многие пользователи (включая меня) просматривают веб-страницы из ноутбуков, которые не созданы для производительности звука. Это означает (помимо прочего), что громкость звука для большинства видео слишком низка, особенно если видео само записывается с низкой громкостью.
Поэтому...
Мне было интересно, есть ли способ увеличить объем такого видео (особенно Youtube, но может быть распространен на другие типы), потому что я заинтересован в том, чтобы делать это и даже публиковать его как Firefox/Chrome/other браузера.
Или, альтернативно, если вы знаете такой плагин, не стесняйтесь публиковать ссылку здесь.
Ответы
Ответ 1
Если вы хотите управлять системным томом, JavaScript не имеет прямого доступа к нему, вам нужно будет написать плагин NPAPI (С++ dll).
Если вы хотите просто отрегулировать собственный объем видеопроигрывателя (вы не сможете увеличить его на 100%), тогда JavaScript может это сделать, возможно.
Если видеопроигрыватель является тегом HTML5 <video>
, то управление томом легко. Для YouTube это будет:
document.getElementsByClassName("video-stream")[0].volume = 0.5; //50%
Если это сделанный на заказ флеш-плеер, вам нужно полагаться на свой интерфейс JavaScript, если таковой имеется. Youtube проигрыватель поддерживает контроль объема с помощью JavaScript:
document.getElementById("movie_player").setVolume(50);
Чтобы это сработало, вам нужно будет вырваться из изолированной песочницы с расширением, введя тег <script>
на странице с помощью этого кода.
Нет универсального решения, вам нужно будет иметь дело с каждым сайтом индивидуально.
Ответ 2
Используйте VLC Media Player. Вы можете копировать и вставлять в нее ссылки. Увеличьте звук до 250%
Ответ 3
Вы можете использовать js-ctypes для изменения уровня громкости системы. Вот пример, который устанавливает объем до 12,5%:
Components.utils.import("resource://gre/modules/ctypes.jsm");
var lib = ctypes.open("winmm.dll");
var waveOutSetVolume = lib.declare("waveOutSetVolume", ctypes.default_abi,
ctypes.uint32_t,
ctypes.int32_t, ctypes.uint32_t);
waveOutSetVolume(-1, 0x20002000);
lib.close();
Однако это только изменяет объем для процесса Firefox. Это не повлияет на Flash, потому что теперь он работает в другом процессе. Я даже не уверен, что winmm имеет какой-то способ вообще изменить глобальный том, вам может понадобиться новый MMDevice API для этого - и затем он становится сложным, потому что выполнение COM-вызовов через js-ctypes IMHO невозможно. Только опция создает вашу собственную библиотеку для распространения вместе с вашим расширением. Это должно сделать COM-обмен сообщениями и экспортировать простой API, который можно вызвать через js-ctypes.
Ответ 4
Вы можете использовать программное обеспечение Sound Booster от Letasoft, но есть некоторые вещи, с которыми вы можете столкнуться, например, сбой, мы используем нетбуки, поэтому встроенная звуковая карта имеет ограничение. Поэтому сначала попробуйте бафф, прежде чем играть, что лучший совет, который я могу дать. Максимальный объемный объем составит 500%.