我正在使用此代码将MP3 MemoryStream写入文件:
using (var nSpeakStreamAsMp3 = new MemoryStream())
using (var nWavFileReader = new WaveFileReader(nSpeakStream))
using (var nMp3Writer = new LameMP3FileWriter(nSpeakStreamAsMp3, nWavFileReader.WaveFormat, LAMEPreset.STANDARD_FAST))
{
nWavFileReader.CopyTo(nMp3Writer);
string sPath = "C:\\inetpub\\wwwroot\\server\\bin\\mymp3.mp3";
using (FileStream nFile = new FileStream(sPath, FileMode.Create, System.IO.FileAccess.Write))
{
nSpeakStreamAsMp3.CopyTo(nFile);
}
sRet = (String.Concat("data:audio/mpeg;base64,", Convert.ToBase64String(nSpeakStreamAsMp3.ToArray())));
}
return sRet;
由于某些我没有看到的原因,这会产生一个0字节的文件。 但是,MP3流有效并且确实有效。我将它作为Base64String传递给一个网站,我确实听到了。
这里可能出现错误?
答案 0 :(得分:1)
nSpeakStreamAsMp3
目前位于信息流的 end ;你需要像录像机一样思考:在你再次复制价值之前要善待,倒带(nSpeakStreamAsMp3.Position = 0;
)nMp3Writer
;如果可能,请完全关闭nMp3Writer