如何将RIFF块数据写入WAV文件的结尾? 是的,是的,到WAV文件的结尾。 为什么?因为这就是我要替换的旧程序的方式,而集成程序为此准备好了,因此无法修改。

最佳答案

我个人将使用BASS.NET,它确实处理RIFF ICMT标签。

EncoderWAV类提供允许使用的WAV_AddRiffInfo属性。

// re-encodes a file and adds a comment to it.
var init = Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero);
if (init)
{
    int channel = Bass.BASS_StreamCreateFile("filename", 0, 0, BASSFlag.BASS_STREAM_DECODE);
    var tagInfo = new TAG_INFO { comment = "your comment" };
    var encoderWav = new EncoderWAV(channel);
    encoderWav.WAV_AddRiffInfo = true;
    encoderWav.TAGs = tagInfo;
    encoderWav.OutputFile = "output.wav";
    var start = encoderWav.Start(null, IntPtr.Zero, false);
    Bass.Free();
}

注意:不要忘记将bass.dll放在您的.EXE是的位置

(起初,BASS是一个C库,BASS.NET为它提供了一个包装器,但也提供了许多原始库中没有的很酷的东西,例如编码器,可视化器等。)

IMO BASS.NET是.NET最好的音频库,尤其是低级的东西,实际上那是唯一的一个:-)

07-28 05:56