NAudio Преобразование аудио байтов в Base64 на лету - PullRequest
0 голосов
/ 07 мая 2020

Здравствуйте, люди, я пытаюсь захватить звук на компьютере, используя C# и управляемую оболочку NAudio для. Net Цель состоит в том, чтобы получить байты звука, преобразовать их в base64 и отправить их в сокет, чтобы при приеме эти байты будут воспроизводиться в HTML5 аудиоплеере.

Передающая часть хороша, но строка Base64, генерируемая системой, недействительна. Сторона HTML протестирована с образцом Base64 Audio, взятым из этой ссылки, поэтому сторона HTML работала нормально. Я использую следующее событие для захвата, кодирования и отправки звукового кадра. Также я открыт для предложений, если у вас есть какая-то альтернативная идея / способ / техника, то они приветствуются, никаких особых ограничений в силе нет.

private void ProcessData(object sender, WaveInEventArgs e)
{
      if (e.BytesRecorded > 0)
      {
                MemoryStream stream = new MemoryStream();
                WaveFormat format = WaveFormat.CreateALawFormat(CaptureInstance.WaveFormat.SampleRate, CaptureInstance.WaveFormat.Channels);

                WaveFileWriter writer = new WaveFileWriter(stream, format);
                writer.Write(e.Buffer, 0, e.BytesRecorded);

                if (stream.Length > 0)
                {
                    stream.Position = 0;
                    Send(Convert.ToBase64String(stream.ToArray()), "audio");
                    writer.Close();
                    writer.Dispose();
                    stream.Dispose();
                }
      }
}
...