Tag: wav

如何在C#中播放提取的波形文件字节数组?

目前,我已设法分离WAVE文件的左右声道,并将标头包含在byte []数组中。 我的下一步是打两个频道。 如何才能做到这一点? 这是一段代码: byte[] song_left = new byte[fa.Length]; byte[] song_right = new byte[fa.Length]; int p = 0; for (int c = 0; c < 43; c++) { song_left[p] = header[c]; p++; } int q = 0; for (s = startByte; s < length; s = s + 3) { song_left[s] = sLeft[q]; q++; […]

将wav文件存储在数组中

我需要一种快速方法来将wav文件的所有样本存储在一个数组中。 我目前正在通过播放音乐和存储示例提供程序中的值来解决此问题,但这不是很优雅。 从NAudio演示我有这个方法的Audioplayer类: private ISampleProvider CreateInputStream(string fileName) { if (fileName.EndsWith(“.wav”)) { fileStream = OpenWavStream(fileName); } throw new InvalidOperationException(“Unsupported extension”); } var inputStream = new SampleChannel(fileStream, true); var sampleStream = new NotifyingSampleProvider(inputStream); SampleRate = sampleStream.WaveFormat.SampleRate; sampleStream.Sample += (s, e) => { aggregator.Add(e.Left); }; // at this point the aggregator gets the current sample value, while playing […]

从多个WAV文件中删除标头,然后将剩余数据连接到一个RAW文件中

我有一个RAW音频文件,它由几个连接的,较小的WAV文件组成。 我可以在Sound Forge中以48,000,8位PCM,签名,单声道打开并播放此文件。 我想在C#中做的是用编程方式用相同或更小长度的新数据覆盖文件中的每个WAV,我认为我非常接近能够做到。 我可以在RAW文件上执行File.ReadAllBytes,循环遍历字节数组,并确定每个WAV的开始和结束位置。 然后我在我的电脑上选择新的WAV文件,删除标题,并将剩余的数据写入我的RAW文件。 如果新的WAV小于它的目的地,我用0填充差值。 然而,当我在上面提到的设置中打开Sound Forge中的新文件时,我的所有WAV看起来更像是固体块,而不是普通的“圣诞树”形状,它们都播放得很响亮而且扭曲。 在第一次遇到这个之后,我突然意识到我的所有新的源WAV都是41,000,16位PCM,有符号立体声格式。 我以这种格式打开了我新创建的RAW文件,它外观和播放都很好。 我想我必须将所有新的WAV转换为48,000,8位PCM,签名,单声道,然后运行应用程序将它们复制到RAW文件中。 我在使用NAudio编写了一些代码,在将数据复制到我的RAW文件之前对文件进行转换,但我仍然遇到了同样的问题。 我也尝试先在Sound Forge中手动转换每个新的WAV,但仍然遇到同样的问题。 我在这里想念的是什么? 谢谢。

在C#中同时播放声音

我希望在胜利应用程序(用C#编写),声音(Wav格式)播放作为背景声音,鼠标hover在控制播放小wav声音文件,当点击按钮,停止背景声音和……. 谢谢你的指导。

如何在C#中将g729编码的字节数组转换为.WAV?

我一直在使用C语言编写VoIP应用程序。 该项目的目的是VoIP呼叫记录。 它使用g729编解码器。 我可以从RTP有效载荷中提取语音部分。 如何将此Byte数组转换为.wav格式? 请帮我。

将AAC转换为WAV

我已经在使用Media Foundation API(感谢MFManagedEncode, http://blogs.msdn.com/b/mf/archive/2010/02/18/mfmanagedencode.aspx )将wav转换为aac。 我还没有完全了解它是如何工作的,但它确实有效 – 谢天谢地。 现在我发现很难以其他方式进行转码,即使它有一个MF编解码器(AAC解码器)。 我找不到如何使用这个的例子,我发现它的MSDN文档至少可以说是含糊不清的; 谁有运气呢? AC#wrapper for是理想的。 TIA。

从多通道wav文件中读取单个通道

我需要从wav文件中提取单个通道的样本,该文件最多包含12个(11.1格式)通道。 我知道在正常的立体声文件中,样本是交错的,先是左边,然后是右边,就像这样, [1st L] [1st R] [2nd L] [2nd R]… 那么,要阅读左声道,我会这样做, for (var i = 0; i < myByteArray.Length; i += (bitDepth / 8) * 2) { // Get bytes and convert to actual samples. } 为了获得正确的通道,我只需要做for (var i = (bitDepth / 8)… 。 但是,对于超过2个频道的文件,使用了什么顺序?

如何在c#中将midi转换为wav / mp3?

我开始了一个小项目,包括使用MIDI文件。 我一直在想,是否有任何C#或VB.Net代码可以实现MIDI和WAV文件之间的转换?

分析wav并绘制图表

我正在尝试从wav文件中打印出一个wave,但我对于我应该为样本采取的长度感到很遗憾。 这就是我喜欢的(没有颜色): 因此,为了读取我的数据,我使用以下代码: // first we need to read our wav file, so we can get our info: byte[] wav = File.ReadAllBytes(filename); // then we are going to get our file’s info info.NumChannnels = wav[22]; info.SampleRate = bytesToInt(wav[24], wav[25]); // nr of samples is the length – the 44 bytes that where needed for the […]

在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;