Media Session 是一个管理管道中数据流的对象。他是整个程序模型中的枢纽,Media Session 导出 IMFMediaSession 接口,所有播放中的控制,例如暂停、播放、停止等都是通过 Media Session 来完成的。
Media Session 有两种创建方式:
1. 如果播放的媒体内容不是受保护的,那么可以直接调用 MFCreateMediaSession, 这个函数会在应用程序进程内创建Media Session。
2. 如果播放的媒体内容是受保护的,那么可以调用 MFCreatePMPMediaSession 函数,这个函数会在 PMP (protected media path) 进程中创建 Media Session 对象实例,应用程序在使用Media Session的时候,根本不知道 Media Session 在哪里。 函数返回 Media Session 代理对象的指针,应用程序可以通过这个指针来操作Media Session。 这种情况也可以支持不含有包含的媒体播放。
通过Media Session 来控制媒体播放(数据流)需要下面几步:
1. 创建拓扑。 拓扑是数据流在管道流动图。
2. 调用 IMFMediaSession::SetTopology 把拓扑放到Media Session 队列中。
3. 控制数据流,是通过函数 IMFMediaSession::Start, IMFMediaSession::Pause, or IMFMediaSession::Stop.
4. 在应用程序退出前,调用 IMFMediaSession::Close 来关闭 Medi
MF(二) Media Session
最新推荐文章于 2024-06-26 18:54:13 发布