MultiSourceMediaFrameReader.FrameArrived 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当新帧从与 MultiSourceMediaFrameReader 关联的所有媒体帧源到达时发生。
// Register
event_token FrameArrived(TypedEventHandler<MultiSourceMediaFrameReader, MultiSourceMediaFrameArrivedEventArgs const&> const& handler) const;
// Revoke with event_token
void FrameArrived(event_token const* cookie) const;
// Revoke with event_revoker
MultiSourceMediaFrameReader::FrameArrived_revoker FrameArrived(auto_revoke_t, TypedEventHandler<MultiSourceMediaFrameReader, MultiSourceMediaFrameArrivedEventArgs const&> const& handler) const;
public event TypedEventHandler<MultiSourceMediaFrameReader,MultiSourceMediaFrameArrivedEventArgs> FrameArrived;
function onFrameArrived(eventArgs) { /* Your code */ }
multiSourceMediaFrameReader.addEventListener("framearrived", onFrameArrived);
multiSourceMediaFrameReader.removeEventListener("framearrived", onFrameArrived);
- or -
multiSourceMediaFrameReader.onframearrived = onFrameArrived;
Public Custom Event FrameArrived As TypedEventHandler(Of MultiSourceMediaFrameReader, MultiSourceMediaFrameArrivedEventArgs)
事件类型
注解
在 FrameArrived 事件的处理程序中,在作为发送方参数传递到事件处理程序的 MultiSourceMediaFrameReference 上调用 TryAcquireLatestFrame,以获取一个 MultiSourceMediaFrameReference,它表示从为其创建了读取器的媒体帧源的最新相关帧集。 然后,通过调用 TryGetFrameReferenceBySourceId 并传入所需媒体帧源的 MediaFrameSourceInfo.Id 属性的值,从特定媒体帧源获取时间相关的媒体帧。
请注意,仅当从与 MultiSourceMediaFrameReader 关联的所有媒体帧源提供新帧时,才会引发此事件。 例如,如果其中一个源以另一个源的两倍速率生成帧,则会删除较快的源的一半帧,并且仅当较慢的帧源有可用的新帧时才会引发此事件。 因此,最好设置事件并在每次引发此事件时发出信号。 在单独的线程中,可以检查来查看事件是否已在指定的时间窗口(例如 5 秒)内发出信号。 如果事件尚未通过时间窗口发出信号,你的应用可以推断出其中一个帧源不再生成帧,并且读取器应停止。
有关使用时间相关媒体帧的操作指南,请参阅 使用 MediaFrameReader 处理媒体帧。