- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个程序以字节数组的形式接收 mp3 数据。它必须将该 mp3 数据转换为 wav 格式并将其存储在字节数据中。为此,我正在尝试使用 NAudio。为此,我使用以下代码。
Stream inputStream = ...;
Stream outputStream = ...;
using (WaveStream waveStream = WaveFormatConversionStream.CreatePcmStream(new Mp3FileReader(inputStream)))
using (WaveFileWriter waveFileWriter = new WaveFileWriter(outputStream, waveStream.WaveFormat))
{
byte[] bytes = new byte[waveStream.Length];
waveStream.Read(bytes, 0, waveStream.Length);
waveFileWriter.WriteData(bytes, 0, bytes.Length);
waveFileWriter.Flush();
}
当我运行上面的代码时,我收到的字节数组中只有 0。但如果使用 WaveFileWriter 将数据直接写入文件,则文件会收到正确的数据。有什么原因吗?
最佳答案
试一试:
using (WaveStream waveStream = WaveFormatConversionStream.CreatePcmStream(new Mp3FileReader(inputStream)))
using (WaveFileWriter waveFileWriter = new WaveFileWriter(outputStream, waveStream.WaveFormat))
{
byte[] bytes = new byte[waveStream.Length];
waveStream.Position = 0;
waveStream.Read(bytes, 0, waveStream.Length);
waveFileWriter.WriteData(bytes, 0, bytes.Length);
waveFileWriter.Flush();
}
关于c# - 如何将 NAudio WaveStream 写入内存流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500222/
如何使用 NAudio 将 WaveStream 转换为字节数组? 最佳答案 public static class StreamExtension { public static byte[
我检查了 NAudio 及其 WaveStream 相关类,但找不到基于我提供的 PCM 示例创建 WaveStream 的内置方法。 理想情况下我想做这样的事情: byte[] samples =
我想将字节数组(从 mp3 文件读取)转换为 WaveStream,然后创建 WaveChannel32 以在 NAudio 中播放音频。我可以将字节数组读取到 Stream,然后读取到 Mp3Fil
我有一个 WaveStream,我可以读取 WaveFormat 来获取 channel 数。当我从 WaveStream 中读取时,我是在读取第一个 channel 还是从所有混合 channel
我有一个程序以字节数组的形式接收 mp3 数据。它必须将该 mp3 数据转换为 wav 格式并将其存储在字节数据中。为此,我正在尝试使用 NAudio。为此,我使用以下代码。 Stream input
我已经为此苦苦挣扎了一段时间,但找不到有效的解决方案。 我有一个 wav 文件(16 位 PCM:44kHz 2 channel ),我想为两个 channel 中的每一个将样本提取到两个数组中。据我
我是一名优秀的程序员,十分优秀!