我从任何System.IO.Stream开始,就像FileStream一样。 FileStream是可写的和可读的。 我正在使用IStream的基本实现将System.IO.Stream转换为IStream。 有关确切的代码,请查看以下内容:http://cscore.codeplex.com/SourceControl/latest#CSCore/Win32/ComStream.cs
IStream实现应支持编写。现在我想将IStream转换为IMFByteStream以将其与mediafoundation结合使用。
我使用MFCreateMFByteStreamOnStream创建IMFByteStream。 除了一件重要的事情之外,一切都很好: 如果我拨打IMFByteStream::GetCapabilities,我可以看到IMFByteStream只支持阅读和搜索。但我想用它来编码,所以我需要写作。
那么如何才能获得可写的IMFByteStream?
还有一个奇怪的事情:MP3编码器不关心,IMFByteStream是不可写的,编码工作正常(它实际上将数据写入IMFByteStream,将其写入IStream,将其写入FileStream,但它告诉我它不可写。)