如何将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最好的音频库,尤其是低级的东西,实际上那是唯一的一个:-)