Tag: audio

将WasapiLoopbackCapture wav音频流转换为MP3文件

我能够在WasapiLoopbackCapture(naudio)的帮助下捕获由扬声器生成的系统音频。 但问题是它捕获wav文件和wav文件的大小非常大(几乎10到15 MB / Min)。 我必须捕获2-3小时的音频,这将太高了。 我正在寻找一种解决方案,将wap流转换为WasapiLoopbackCapture转换为MP3,然后将其保存到磁盘。 我尝试使用LAME.exe或其他解决方案,但没有成功。 任何工作代码。 这是我的代码: private void button1_Click(object sender, EventArgs e){ LoopbackRecorder obj = new LoopbackRecorder(); string a = textBox1.Text; obj.StartRecording(@”e:\aman.mp3″); } public class LoopbackRecorder { private IWaveIn _waveIn; private Mp3WaveFormat _mp3format; private WaveFormat _wavFormat; private WaveFileWriter _writer; private bool _isRecording = false; /// /// Constructor /// public LoopbackRecorder() { […]

使用哪个音频库?

我想构建一个用于处理音频的.Net应用程序,并使用ClickOnce部署进行分发。 我需要访问原始音频管道。 我应该使用哪个音频库? 我听说DirectSound的托管库是死路一条。 我需要尽可能少地安装在客户端的机器上。 ClickOnce流程之外的任何东西都不起作用。 NAudio可能是一种可能性,但是可能没有单独的驱动程序安装吗? 还有SlimDX。 这很遗憾 – 托管的DirectX库看起来效果很好,而且根据我的阅读,DirectX可以包含在ClickOnce安装中。

使用C#播放MP3文件

我正在寻找一种播放MP3文件的方法,而没有任何第三方播放它(媒体播放器等)有没有办法做到这一点? 谢谢。

与Ogg Vorbis合作

我有一个ogg vorbis文件,我必须用它做两个操作: 将文件的一部分从一个位置切换到另一个位置 将另一个文件与现有文件合并 如何在C#中实现这两个操作?

规范化音频,如何将float数组转换为字节数组?

大家好,我正在播放音频文件。 我把它读作byte[]然后我需要通过将值放入[-1,1]的范围来规范化音频。 我想将每个浮点值放入byte[i]数组中,然后将该byte[]放回播放音频播放器。 我试过这个: byte[] data = ar.ReadData(); byte[] temp=new byte[data.Length]; float biggest= 0; ; for (int i = 0; i biggest) { biggest= data[i]; } } 这部分代码应该举例如0.43 int byte []如果可能的话我试过这个但是它不起作用: for (int i = 0; i < data.Length; i++) { temp = BitConverter.GetBytes(data[i] * (1 / biggest)); }

如何根据频率生成声音?

可能重复: 在C#中创建正弦波或方波 我想生成声音。 要么像: MakeSound(frequency, duration); 要么: MakeSound(MyArrayOfSamples); 我发现了一些名为: Microsoft.Directx.DirectSound但已经读过它已经停止使用。 我无法在Visual Studio(2010)中找到它作为参考的选项。 根据我所读的内容,我发现这个链接应该包含它,但是因为它可能不再受支持而犹豫是否使用了2006年的内容。 而且这个说它是用于C / C ++(尽管也说:“托管代码”)并且我不想浪费几周试图理解如何将其包装到托管代码中,只是为了发现我做不到。 我发现最有希望的链接是WaveFormat,但我找不到如何使用它。 我不是在问如何获得声波的数学表示。 我也不知道如何播放mp3文件等。 我也不是在寻找第三方软件或包装器。 仅针对特定目标的C#/ .net解决方案。

在matlab中将音频文件转换为字节数组

我想将音频文件(.wav / .mp3)转换为C#中的字节数组。 这是我的代码, string imageName = Guid.NewGuid().ToString() + “.mp3”; byte[] file = System.Convert.FromBase64String(Filep); File.WriteAllBytes(Server.MapPath(“FILE/” + imageName), file); return imageName;

如何将2个wav文件混合在一起?

我正在尝试录制输入并将其与歌曲合并(不连接)。 我有一把吉他,我在听一首歌的同时录制了这首吉他,我想把吉他放在歌曲上(如音响)。 这样做有什么办法吗? 如果实时混音不可能 – 我可以在录制后将它们合并吗? 就像我录制了吉他,现在它是一个wav文件,我想把两个wav文件混合在一起。 多数输入设备: private void Capture() { input = new WasapiCapture((MMDevice)inputCombo.SelectedItem); bufferedWaveProvider = new BufferedWaveProvider(input.WaveFormat); input.DataAvailable += WaveInOnDataAvailable; input.StartRecording(); write = new WaveFileWriter(System.IO.Path.GetTempFileName(), input.WaveFormat); } private void WaveInOnDataAvailable(object sender, WaveInEventArgs e) { bufferedWaveProvider.AddSamples(e.Buffer, 0, e.BytesRecorded); write.Write(e.Buffer, 0, e.BytesRecorded); write.Flush(); } 我想将它写入已存在的wav文件而不是覆盖它,而不是将其写入空白文件。 是否可以使用MixingSampleProvider?

从一个实例重复声音

我一直在阅读有关将声音编程到ac#XNA游戏中的不同方法。 我决定使用声音实例进行音量控制,但是在播放.wav时,我意识到声音只会在完成后再次播放,而只是使用声音效果.Play()(而不是如果被要求,将导致它自己播放多个副本。 所以我的问题是,在按住按钮会导致单个声音效果一次多次播放的情况下(例如机枪的重复无人机等),而不是等到声音文件结束循环; 你会如何使用实例? 我假设有一些我缺少的东西,或者一个实例不是为此用途而设计的。 如果是这样,声音效果的基本选项和声音效果实例的基本选项之间的主要区别是什么? 提前致谢。

C# – 播放文件夹中的随机声音文件

我正在尝试创建一个Oracle(阅读:Magic 8 Ball)。 其背后的想法是,在每个按钮按下时,播放具有明智单词的声音文件(随机选取)。 我有它使用开关工作,但我正在寻找一种方法,使它更合乎逻辑。 这是当前的样子,开关一直打开: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace _8ball { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Random rnd = new Random(Guid.NewGuid().GetHashCode()); int choices = rnd.Next(0, […]