@Lishout

Как одновременно воспроизвести (N) BufferedWaveProvider и управлять уровнем громкости для каждого в NAudio?

(N) - количество провайдеров, предположительно не больше 20.
Ситуация следующая, у меня есть (N) BufferedWaveProvider.
В эти провайдеры я записываю байты полученные по сети.
Мне нужно их как-то начать проигрывать, ну и еще контролировать уровень громкости для каждого BufferedWaveProvider.

Пробовал каждому BufferedWaveProvider выделать свой WaveOut, но так звук контролируется для всего приложения, а не для конкретного провайдера в частности.
Ума не приложу как это можно провернуть.
  • Вопрос задан
  • 208 просмотров
Решения вопроса 1
@Lishout Автор вопроса
Решил вопрос.
Просто кидал полученные байты в функцию.
private unsafe void VolumeSetter(byte[] destBuffer, int bytesRead, short loudnessDivider)
        {
            fixed (byte* pDestBuffer = &destBuffer[0])
            {
                short* pfDestBuffer = (short*)pDestBuffer;
                int samplesRead = bytesRead / 2;
                for (int n = 0; n < samplesRead; n++)
                {
                    pfDestBuffer[n] /= loudnessDivider;
                }
            }
        }

Все оказалось довольно просто, нужно было почитать матчасть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы