我尝试在CScore中捕获音频流并将其保存在各种编码和各种位置。我的一个预期输出编码是通过MediaFoundationEncoder API的MP3。
保存到本地文件路径时,我能够成功编码为MP3。但是,如果我尝试写入内存流,则内存流将以0长度完成写入。
此实施有什么问题?
使用本地存储空间
using (var outputStream = new MemoryStream())
{
var encoder = MediaFoundationEncoder.CreateMP3Encoder(waveFormat, outputStream, waveFormat.BytesPerSecond);
var buffer = new byte[waveFormat.BytesPerSecond];
int read;
while ((read = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
encoder.Write(buffer, 0, read);
}
log.Debug("MP3 File Size: " + outputStream.Length); // <-- Returns as 0
}
非工作内存流
{{1}}