В приложении Daznetcore 3.0 Blazor я хочу иметь возможность записывать звук с помощью NAudio вместо реализации элемента управления HTML5 в Javascript. NAudio поддерживает это?
Я уже пробовал пример кода ниже. Я получаю файл волны 0 байт, записанный на мой рабочий стол.
@inject IJSRuntime JsRuntime
@using System
@using System.IO
@using NAudio.Wave
<button @ref="recordButton" @onclick="Record">Record</button>
<button @ref="stopRecording" @onclick="StopRecording">Stop</button>
@code {
ElementReference recordButton;
ElementReference stopRecording;
WaveInEvent waveIn;
public void Record()
{
var outputFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "NAudio");
Directory.CreateDirectory(outputFolder);
var outputFilePath = Path.Combine(outputFolder, "recorded.wav");
waveIn = new WaveInEvent();
WaveFileWriter writer = new WaveFileWriter(outputFilePath, waveIn.WaveFormat);
waveIn.StartRecording();
waveIn.DataAvailable += (s, a) =>
{
writer.Write(a.Buffer, 0, a.BytesRecorded);
};
}
public void StopRecording()
{
waveIn.StopRecording();
}
}