c# - 无需写入磁盘即可使用 naudio 将 Mp3 转换为 WAV。 (仅限流媒体)

标签 c# mp3 wav naudio

我想将 mp3 文件转换为 WAV。在 DirectX.DirectSound 中,辅助缓冲区仅支持 WAV。我正在使用 naudio 转换文件,这工作正常。

using (Mp3FileReader reader = new Mp3FileReader(mp3File))
{
    WaveFileWriter.CreateWaveFile(outputFile, reader);
}

问题是我无法将文件保存在磁盘上,所以我必须将它们与流一起使用。

 Mp3FileReader mp3reader = new Mp3FileReader(filenamePathMp3);
 var stream=WaveFormatConversionStream.CreatePcmStream(mp3reader);

抛出异常值不在预期范围内。如何在不写入磁盘的情况下将音频转换为 WAV 或原始音频以用于 secondaryBuffer?

提前谢谢你,

最佳答案

WaveFileWriter 可以写入 Stream 而不是文件,因此您只需传入 MemoryStream。此外,Mp3FileReader.Read 已经返回 PCM,因此您可以读出到 byte[] 中,然后根据需要将其插入到内存流中。

关于c# - 无需写入磁盘即可使用 naudio 将 Mp3 转换为 WAV。 (仅限流媒体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15952646/

相关文章:

c# - .net 标签加速键事件

c# - 为纸牌分配号码

php - 为什么使用 ffmpeg 将比特率从 124 转换为 96 会减少我的 mp3 文件的持续时间?

java - 使用 BufferedReader 和 BufferedWriter 在 Java 中播放 mp3 文件

java - Java音板-声音不可移植

java - 播放大型 wav 文件的特定部分

c# - Fluent Nhibernate继承抛出索引超出范围异常

c# - 从接口(interface)继承的类中的列表 - 从类中添加到列表?

android mp3文件下载

java - 如何在 Android Studio 中配置 MediaRecorder 以 48KHz 录制 WAV 格式的音频?