naudio - 我可以使用 NAudio 在 Blazor 应用程序中录制音频吗?
问题描述
在 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();
}
}
解决方案
我们必须使用 Javascript 来访问用户的麦克风。
推荐阅读
- python - 如何在 Adwords API 中获取 bidStrategyConfiguration?
- python - 热键/热字符串打印 PyCharm 中的最后一个变量/所有定义的变量?
- javascript - 带有原生承诺的 Knex.js
- excel - 自动调整单元格注释大小的 VBA 代码
- python - PyCharm 终端不打印任何输出
- visual-studio - 在 IIS 上部署时,Visual Studio 中的代码更改不会发生
- single-sign-on - 信任外部组织 ADFS 服务器并使用 openid Connect 令牌
- angular - 如何根据角度事件调用管道?
- tfs - 保持 vss 和 tfs 一起安装在同一台机器上
- java - 无法从 Java 访问 SharePoint 存储库