IMFPMediaItem::SetStreamSink 方法 (mfplay.h)

重要 废弃。 此 API 可能会从 Windows 的未来版本中删除。 应用程序应使用 媒体会话 进行播放。
 

设置媒体项的媒体接收器。 媒体接收器是使用一个或多个流中的数据的对象。

语法

HRESULT SetStreamSink(
  [in] DWORD    dwStreamIndex,
  [in] IUnknown *pMediaSink
);

参数

[in] dwStreamIndex

媒体源上流的从零开始的索引。 媒体接收器将从此流接收数据。

[in] pMediaSink

指定媒体接收器的 IUnknown 指针。 传入以下项之一:

  • 指向流接收器的指针。 每个媒体接收器都包含一个或多个 流接收器。 每个流接收器从一个流接收数据。 流接收器必须公开 IMFStreamSink 接口。
  • 指向创建媒体接收器的激活对象的指针。 激活对象必须公开 IMFActivate 接口。 媒体项使用媒体接收器上的第一个流接收器 (即索引 0) 处的流接收器。
  • NULL。 如果将 pMediaSink 设置为 NULL,则使用流类型的默认媒体接收器。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

默认情况下,MFPlay 播放器对象将音频流呈现器呈现到 流式处理音频呈现器 (SAR) ,并将视频流呈现到 增强的视频呈现器 (EVR) 。 可以使用 SetStreamSink 方法为音频或视频流提供不同的媒体接收器;或 ,以支持音频和视频以外的其他流类型。 还可以使用它来配置 SAR 或 EVR,然后再使用它们。

在调用 IMFPMediaPlayer::SetMediaItem 之前调用此方法。 除非停止播放并再次调用 SetMediaItem ,否则在 SetMediaItem 之后调用此方法不起作用。

若要重置媒体项以使用默认媒体接收器,请将 pMediaSink 设置为 NULL

远程播放优化

如果应用程序通过远程桌面运行,并且你使用音频或视频流的非 NULL 值调用此方法,则 MFPlay 将禁用远程播放优化。 此备注仅适用于音频和视频流。 它不适用于包含某些其他数据类型(如文本)的流。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfplay.h

另请参阅

IMFPMediaItem

媒体接收器

使用 MFPlay 播放音频/视频