MF_MEDIA_ENGINE_EVENT 枚举 (mfmediaengine.h)

定义媒体引擎的事件代码。

语法

typedef enum MF_MEDIA_ENGINE_EVENT {
  MF_MEDIA_ENGINE_EVENT_LOADSTART = 1,
  MF_MEDIA_ENGINE_EVENT_PROGRESS = 2,
  MF_MEDIA_ENGINE_EVENT_SUSPEND = 3,
  MF_MEDIA_ENGINE_EVENT_ABORT = 4,
  MF_MEDIA_ENGINE_EVENT_ERROR = 5,
  MF_MEDIA_ENGINE_EVENT_EMPTIED = 6,
  MF_MEDIA_ENGINE_EVENT_STALLED = 7,
  MF_MEDIA_ENGINE_EVENT_PLAY = 8,
  MF_MEDIA_ENGINE_EVENT_PAUSE = 9,
  MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA = 10,
  MF_MEDIA_ENGINE_EVENT_LOADEDDATA = 11,
  MF_MEDIA_ENGINE_EVENT_WAITING = 12,
  MF_MEDIA_ENGINE_EVENT_PLAYING = 13,
  MF_MEDIA_ENGINE_EVENT_CANPLAY = 14,
  MF_MEDIA_ENGINE_EVENT_CANPLAYTHROUGH = 15,
  MF_MEDIA_ENGINE_EVENT_SEEKING = 16,
  MF_MEDIA_ENGINE_EVENT_SEEKED = 17,
  MF_MEDIA_ENGINE_EVENT_TIMEUPDATE = 18,
  MF_MEDIA_ENGINE_EVENT_ENDED = 19,
  MF_MEDIA_ENGINE_EVENT_RATECHANGE = 20,
  MF_MEDIA_ENGINE_EVENT_DURATIONCHANGE = 21,
  MF_MEDIA_ENGINE_EVENT_VOLUMECHANGE = 22,
  MF_MEDIA_ENGINE_EVENT_FORMATCHANGE = 1000,
  MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS = 1001,
  MF_MEDIA_ENGINE_EVENT_TIMELINE_MARKER = 1002,
  MF_MEDIA_ENGINE_EVENT_BALANCECHANGE = 1003,
  MF_MEDIA_ENGINE_EVENT_DOWNLOADCOMPLETE = 1004,
  MF_MEDIA_ENGINE_EVENT_BUFFERINGSTARTED = 1005,
  MF_MEDIA_ENGINE_EVENT_BUFFERINGENDED = 1006,
  MF_MEDIA_ENGINE_EVENT_FRAMESTEPCOMPLETED = 1007,
  MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE = 1008,
  MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY = 1009,
  MF_MEDIA_ENGINE_EVENT_TRACKSCHANGE = 1010,
  MF_MEDIA_ENGINE_EVENT_OPMINFO = 1011,
  MF_MEDIA_ENGINE_EVENT_RESOURCELOST = 1012,
  MF_MEDIA_ENGINE_EVENT_DELAYLOADEVENT_CHANGED = 1013,
  MF_MEDIA_ENGINE_EVENT_STREAMRENDERINGERROR = 1014,
  MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED = 1015,
  MF_MEDIA_ENGINE_EVENT_AUDIOENDPOINTCHANGE = 1016
} ;

常量

 
MF_MEDIA_ENGINE_EVENT_LOADSTART
值:1
媒体引擎已开始加载源。 请参阅 IMFMediaEngine::Load
MF_MEDIA_ENGINE_EVENT_PROGRESS
值: 2
媒体引擎正在加载源。
MF_MEDIA_ENGINE_EVENT_SUSPEND
值: 3
媒体引擎已暂停加载操作。
MF_MEDIA_ENGINE_EVENT_ABORT
值: 4
媒体引擎取消了正在进行的加载操作。
MF_MEDIA_ENGINE_EVENT_ERROR
值: 5
出现了错误。














事件参数说明
param1MF_MEDIA_ENGINE_ERR 枚举的成员。
param2HRESULT 错误代码或零。
MF_MEDIA_ENGINE_EVENT_EMPTIED
值: 6
媒体引擎已切换到 MF_MEDIA_ENGINE_NETWORK_EMPTY 状态。 当调用 IMFMediaEngine::Load 方法时,或者在 Load 方法期间发生错误时,可能会发生这种情况。 请参阅 IMFMediaEngine::GetNetworkState
MF_MEDIA_ENGINE_EVENT_STALLED
值: 7
加载算法已停止,正在等待数据。
MF_MEDIA_ENGINE_EVENT_PLAY
值: 8
媒体引擎正在切换到播放状态。 请参阅 IMFMediaEngine::P lay
MF_MEDIA_ENGINE_EVENT_PAUSE
值: 9
媒体引擎已暂停。 请参阅 IMFMediaEngine::P ause
MF_MEDIA_ENGINE_EVENT_LOADEDMETADATA
值: 10
媒体引擎已加载足够的源数据来确定源的持续时间和维度。
MF_MEDIA_ENGINE_EVENT_LOADEDDATA
值: 11
媒体引擎已加载足够的数据来呈现某些内容 (例如视频帧) 。
MF_MEDIA_ENGINE_EVENT_WAITING
值: 12
播放已停止,因为下一帧不可用。
MF_MEDIA_ENGINE_EVENT_PLAYING
值: 13
播放已开始。 请参阅 IMFMediaEngine::P lay
MF_MEDIA_ENGINE_EVENT_CANPLAY
值: 14
可以启动播放,但媒体引擎可能需要停止以缓冲更多数据。
MF_MEDIA_ENGINE_EVENT_CANPLAYTHROUGH
值: 15
媒体引擎可能会播放到资源末尾,而无需停止缓冲数据。
MF_MEDIA_ENGINE_EVENT_SEEKING
值: 16
媒体引擎已开始寻求新的播放位置。 请参阅 IMFMediaEngine::SetCurrentTime
MF_MEDIA_ENGINE_EVENT_SEEKED
值: 17
媒体引擎已寻求新的播放位置。 请参阅 IMFMediaEngine::SetCurrentTime
MF_MEDIA_ENGINE_EVENT_TIMEUPDATE
值: 18
播放位置已更改。 请参阅 IMFMediaEngine::GetCurrentTime
MF_MEDIA_ENGINE_EVENT_ENDED
值: 19
播放已到达源的末尾。 如果 GetLoopTRUE,则不会发送此事件。
MF_MEDIA_ENGINE_EVENT_RATECHANGE
值: 20
播放速率已更改。 请参阅 IMFMediaEngine::SetPlaybackRate
MF_MEDIA_ENGINE_EVENT_DURATIONCHANGE
值: 21
媒体源的持续时间已更改。 请参阅 IMFMediaEngine::GetDuration
MF_MEDIA_ENGINE_EVENT_VOLUMECHANGE
值: 22
音频音量已更改。 请参阅 IMFMediaEngine::SetVolume
MF_MEDIA_ENGINE_EVENT_FORMATCHANGE
值: 1000
媒体源的输出格式已更改。














事件参数说明
param1如果视频格式发生更改,则为零;如果音频格式发生更改,则为 1。
param2Zero。
MF_MEDIA_ENGINE_EVENT_PURGEQUEUEDEVENTS
值: 1001
媒体引擎从其队列中刷新所有挂起的事件。
MF_MEDIA_ENGINE_EVENT_TIMELINE_MARKER
值: 1002
播放位置达到时间线标记。 请参阅 IMFMediaEngineEx::SetTimelineMarkerTimer
MF_MEDIA_ENGINE_EVENT_BALANCECHANGE
值: 1003
音频平衡已更改。 请参阅 IMFMediaEngineEx::SetBalance
MF_MEDIA_ENGINE_EVENT_DOWNLOADCOMPLETE
值: 1004
媒体引擎已完成源数据的下载。
MF_MEDIA_ENGINE_EVENT_BUFFERINGSTARTED
值: 1005
媒体源已开始缓冲数据。
MF_MEDIA_ENGINE_EVENT_BUFFERINGENDED
值: 1006
媒体源已停止缓冲数据。
MF_MEDIA_ENGINE_EVENT_FRAMESTEPCOMPLETED
值: 1007
IMFMediaEngineEx::FrameStep 方法已完成。
MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE
值: 1008
媒体引擎的 负载 算法正在等待启动。














事件参数说明
param1可等待事件的句柄,类型为 HANDLE
param2Zero。

 

如果使用 MF_MEDIA_ENGINE_WAITFORSTABLE_STATE 标志创建媒体引擎,则媒体引擎会在加载算法开始时发送MF_MEDIA_ENGINE_EVENT_NOTIFYSTABLESTATE事件。 param1 参数是可等待事件的句柄。 加载线程通过调用 SetEvent 等待应用程序发出事件信号。

如果未使用 MF_MEDIA_ENGINE_WAITFORSTABLE_STATE 创建媒体引擎,则它不会发送此事件,并且 加载 线程不会等待发出信号。
MF_MEDIA_ENGINE_EVENT_FIRSTFRAMEREADY
值: 1009
媒体源的第一帧已准备好呈现。
MF_MEDIA_ENGINE_EVENT_TRACKSCHANGE
值: 1010
添加或删除新轨道时引发。

在 Windows 8.1 及更高版本中受支持。
MF_MEDIA_ENGINE_EVENT_OPMINFO
值: 1011
当存在有关 输出保护管理器 (OPM) 的新信息时引发。

发生 OPM 故障时,将引发此事件,但 ITA 允许在没有 OPM 的情况下回退。 在这种情况下,可以应用收缩。

当存在 OPM 故障且回退也失败时,不会引发此事件。 例如,如果 ITA 在无法建立 OPM 时完全阻止播放。

在 Windows 8.1 及更高版本中受支持。
MF_MEDIA_ENGINE_EVENT_RESOURCELOST
值: 1012
MF_MEDIA_ENGINE_EVENT_DELAYLOADEVENT_CHANGED
值: 1013
MF_MEDIA_ENGINE_EVENT_STREAMRENDERINGERROR
值: 1014
当媒体流的某个组件流失败时引发。 仅当媒体流包含未失败的其他组件流时,才会引发此事件。
MF_MEDIA_ENGINE_EVENT_SUPPORTEDRATES_CHANGED
值: 1015
MF_MEDIA_ENGINE_EVENT_AUDIOENDPOINTCHANGE
值: 1016

注解

应用程序通过 IMFMediaEngineNotify::EventNotify 方法接收媒体引擎事件。 EventNotify 方法包括两个事件参数:param1param2。 参数的含义取决于事件代码。 如果事件说明未列出任何参数,请忽略 param1param2 的值。

低于 1000 的值对应于 HTML 5 中为媒体元素定义的事件。

要求

   
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
标头 mfmediaengine.h

另请参阅

IMFMediaEngineNotify::EventNotify

Media Foundation 枚举