Увеличьте громкость видеоизображения (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%.