Я хотел бы использовать C # для реализации приложения, которое может воспроизводить несколько аудиопотоков одновременно. Арахис - теперь интересная часть: предполагая, что каждый поток одноканальный (моно), я хочу отрегулировать громкость для каждого динамика (5.1 или даже 7.1) для каждого потока отдельно. Я могу использовать микшер Windows, чтобы сделать это, но проблема в том, что есть только один микшер, и я хочу настроить это для каждого потока отдельно. Есть идеи, как это реализовать?
Моим первым предположением было мультиплексирование потока восемь раз (7.1), применение уровня громкости для каждого «канала», а затем отправка его на микшер Windows, который, например, выравнивается для всех каналов на уровне 80%. Знаете ли вы какие-либо библиотеки, которые могли бы поддерживать такой вариант использования?
AFAIK bass и fmod не могут этого сделать, но поправьте меня, если я ошибаюсь. В качестве альтернативы я подумал о том, чтобы взломать XNA для этого: использовать вектор, который описывает положение потока, относящегося к слушателю, и использовать его для применения компенсации громкости ... просто шум.
(и, пожалуйста, не указывайте мне некоторые идеи C ++ / WinAPI по этому вопросу, этот проект не стоит изучать другой язык сейчас.)