В настоящее время я пытаюсь выяснить, как и если возможно динамическое микширование звуковых дорожек в серверной среде и потоковую передачу, что приводит к клиенту / браузеру.
сценарий: Допустим, у нас есть 3 звуковых дорожки: A, B и C. Я хочу иметь возможность смешивать их на сервере и в соответствии с некоторым кодом (работающим постоянно) и передавать полученный звук как поток потребителю / браузер. Давайте для простоты предположим, что A, B и C — это 8-секундные циклические wav-файлы, воспроизводимые одновременно, и что каждый из них должен произвольно меняться в объеме на каждой итерации.
Я смотрел на SoX, icecast и некоторые другие специфичные для языка библиотеки, но до сих пор не знаю, как это будет работать. Я не могу обернуть голову идеей потокового аудио (без начальной или конечной точки), который постоянно динамически воспроизводится, и как слои будут синхронизироваться друг с другом. Я могу использовать PHP, C # или Node.JS в качестве языка программирования бэкэнда.
Если у кого-нибудь есть идеи, как структурировать такую программу, я буду признателен за советы.
Один из возможных ответов на ваш вопрос может включать комбинацию буферизация аудиопакетов на стороне клиента с помощью WebAudio а также отправка пакетов с сервера с использованием BinaryJS, который основан на NodeJS. Вполне вероятно, что существуют другие действующие стратегии реализации.
Других решений пока нет …