gpt4 book ai didi

c# - 在控制台应用程序中使用 NAudio 录制麦克风音频

转载 作者:行者123 更新时间:2023-12-05 01:02:54 30 4
gpt4 key购买 nike

我的代码运行并创建了一个 test.wav,但这个文件不包含任何内容。我正在尝试在控制台应用程序中运行此代码。请帮忙

        using System;
using System.Media;
using NAudio;
using NAudio.Wave;

class sound
{
public static void Main()
{
WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(0);
Console.WriteLine("Now recording...");
WaveInEvent waveSource = new WaveInEvent();
waveSource.DeviceNumber = 0;
waveSource.WaveFormat = new WaveFormat(16000, deviceInfo.Channels);

//waveSource.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable);

string tempFile = (@"C:\Users\user\Desktop\test1.wav");
WaveFileWriter waveFile = new WaveFileWriter(tempFile, waveSource.WaveFormat);
waveSource.StartRecording();

}

//void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
//{
// wavefile.WriteData(e.Buffer, 0, e.BytesRecorded);
//}

}

有人可以解释一下被评论的行是什么意思。我是编程初学者。

当我编译程序时,它给出了 2 个错误:错误 1:非静态字段、方法或属性需要对象引用 'sound.waveSource_DataAvailable(object, NAudio.Wave.WaveInEventArgs)' C:\Users\user\Documents\Visual Studio 2008\Projects\sound\声音\Program.cs 18 49 声音

错误 2 当前上下文 C:\Users\user\Documents\Visual Studio 2008\Projects\sound\sound\Program.cs 28 21 sound 中不存在名称“wavefile”

最佳答案

显然 StartRecording 方法会启动一些捕获循环,这些循环会定期引发 DataAvailable 事件以允许用户收集记录的数据。在您的示例代码中,事件句柄正确地将记录的数据附加到文件 tempFilewaveInStream_DataAvailablewaveFile 函数都必须声明为静态。

关于c# - 在控制台应用程序中使用 NAudio 录制麦克风音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607351/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com