【问题标题】:Can I use NAudio to record audio in a Blazor app?我可以使用 NAudio 在 Blazor 应用程序中录制音频吗?
【发布时间】:2020-01-30 23:14:09
【问题描述】:

在 dotnetcore 3.0 Blazor 应用程序中,我希望能够使用 NAudio 录制音频,而不是在 Javascript 中实现 HTML5 控件。 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();
    }

}

【问题讨论】:

  • 您没有说明客户端 (Wasm) 或服务器端 Blazor。
  • 但无论哪种情况,所有 I/O 都必须通过 JavaScript。所以答案是否定的。

标签: naudio blazor


【解决方案1】:

我们必须使用 Javascript 来访问用户的麦克风。

【讨论】:

  • 您能提供更多信息吗?有没有关于解决方案的文章?您是否遵循了一些文档?对您有帮助的代码?
  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多