Здравствуйте, люди, я пытаюсь захватить звук на компьютере, используя 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();
}
}
}