Могу ли я использовать NAudio для записи звука в приложении Blazor? - PullRequest
1 голос
/ 01 октября 2019

В приложении 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();
    }

}
...