我正在使用Windows Media Foundation创建示例应用程序。
我使用了源阅读器IMFSourceReader
来阅读媒体文件,然后使用自定义MFT IMFSamples
处理样本IMFTransform
之后。
在MFT中我处理过IMFSamples,如何在windows中播放/显示它们。我不想使用EVR进行显示。
我也读过这个问题:
How to play IMFMediaSample in media foundation?
根据建议,我需要使用MFPlay
来播放样本,但具体如何才能完成。
在界面IMFPMediaPlayer
中,我无法找到任何可以推送媒体样本的方法
https://msdn.microsoft.com/en-us/library/windows/desktop/dd374329(v=vs.85).aspx
答案 0 :(得分:0)
IMFSample
是原始数据的包装器。如果您碰巧放弃了用于播放/演示的标准API产品(例如视频的EVR),则必须从媒体示例对象中提取数据并以其他方式使用它,例如您自行决定使用其他API。
这不一定是完全可视化,您不限于消费理念:写入文件,通过网络发送等。为了可视化,您可以选择其他Windows API:DirectX,DirectShow,传统DirectDraw,GDI,GDI + ,Direct2D等。
IMFSample
不会立即被其他API接受,因为它不是它的设计目的。在Media Foundation API中,EVR专为演示而设计,EVR就是您应该使用的。