Видя, что Adobe закрыла ошибку как "работающую по назначению" (что просто глупо), я решил исправить это сам.
Вот результат: StopBraindeadSurround (с открытым исходным кодом, лицензия WTFPL)
Для установки просто скопируйте audioses.dll
в каталог вашего проигрывателя Flash (обычно это C:\Windows\SysWOW64\Macromed\Flash
если вы используете 64-разрядную версию Windows). Возможно, вам придется скопировать его снова после обновления Flash Player.
Вот выдержка из ЧТЕНИЯ:
Если вы используете Flash Player с системой объемного звучания (например, 5.1, 7.1), вы, возможно, заметили, что Flash воспроизводит странное поведение при воспроизведении аудиопотоков: вместо простой передачи стереофонического аудиопотока без изменений, как это сделала бы любая вменяемая программа, микширует его до 5.1, дублируя аудиопотоки на задние динамики и применяя свое собственное управление басами к каналу LFE.
Это, конечно, безумно глупо по ряду причин. Прежде всего, это несовместимо со всеми остальными программами (например, с аудиоплеерами, такими как foobar2000). Во-вторых, стереопотоки не должны расширяться при воспроизведении в потоке 5.1, поскольку они никогда не предназначались для воспроизведения с использованием задних громкоговорителей. В-третьих, это приводит к чрезмерному выходу низких частот, потому что акустическое суммирование обычно приводит к более высокому звуковому давлению в месте прослушивания в нижней части спектра. И, наконец, если пользователь действительно хочет повысить микширование, несмотря на все эти проблемы, большинство аудио драйверов в любом случае позволяют ему делать это на системном уровне, что имеет гораздо больший смысл, чем на уровне приложений.
Эта небольшая часть программного обеспечения (SBS: StopBraindeadSurround) специально разработана для предотвращения микширования Flash Player аудио. После установки проигрыватель Flash Player не может открыть аудиоустройство с более чем двумя каналами, что заставляет его переключаться на (надеюсь) нетронутый стереофонический выход.
Те, кто заинтересован в реализации, найдут описание того, как она работает, в исходном коде (sbs.cpp
).