Sdílet prostřednictvím


Zdrojové události aplikace Sequencer

Když Sekvenční zdroj přehraje posloupnost souborů, relace médií obecně odesílá všechny stejné události, které se odesílají během normálního přehrávání, a které jsou uvedeny v Události relace médií. Aplikace získá tyto události pomocí rozhraní MMFMediaEventGenerator Media Session.

Kromě toho existují určité události specifické pro segmenty seznamu stop.

Událost Popis
MENewPresentation Signalizuje aplikaci tak, aby přederolluje další topologii.
Pokud chcete zajistit bezproblémový přechod mezi dvěma po sobě jdoucími prezentacemi, zdroj sekvenceru předem načte další topologii. Zatímco aktivní topologie se stále přehrává, zdroj sekvenceru odešle tuto událost pro další topologii, pokud je ve zdroji k dispozici následná topologie.
Tato data události pro tuto událost jsou popisovač prezentace pro další topologii. Aplikace zodpovídá za nastavení odpovídající topologie v relaci médií, jak je popsáno v Použití zdrojovéhoaplikace Sequencer .
MEEndOfPresentationSegment Zdroj sekvenceru vyvolá tuto událost, když relace médií dokončila přehrávání aktuálního segmentu, pokud je tento segment následovaný jiným segmentem. (Pokud je aktuální segment posledním segmentem, zdroj sequenceru místo toho vyvolá MEEndOfPresentation událost.)
Relace médií předá tuto událost aplikaci. Aplikace obvykle obdrží MEEndOfPresentationSegment po zahájení zpracování dalšího segmentu relace médií, ale zatímco jímky médií stále doručují ukázky pro předchozí segment.
MESessionTopologyStatus, se stavem MF_TOPOSTATUS_SINK_SWITCHED. Relace médií vyvolá tuto událost, když provede přechod na další topologii ve zdroji sekvenceru a jímky médií dokončil přehrání předchozí topologie. Tato událost obsahuje ukazatel na další topologii.

 

Příklad 1: Přehrávání bez vynechání

Pokud je zdrojem sekvenceru, může být počet událostí, které získáte z relace médií, matoucí, zejména proto, že události přidružené k jednomu segmentu jsou často prokládání s událostmi pro další segment.

V prvním příkladu aplikace zařadí tři segmenty, S1, S2 a S3. Třetí segment má příznak SequencerTopologyFlags_Last, aby signalizoval, že se jedná o poslední segment v sekvenci. Segment, ke kterému každá událost odpovídá, je uveden v závorkách. Aplikace SetTopology volání jsou také uvedena, aby bylo pořadí operací přehlednější.

Tento seznam neobsahuje každou událost, kterou byste mohli obdržet. (Například vynechá MESessionCapabilitiesChanged událost, která se odešle při každé změně schopností relace. Aplikace obvykle přijímá více událostí MESessionCapabilitiesChanged v rámci prezentace.) Zde uvedené události jsou ty, které zobrazují přechod z jednoho segmentu na další. Nejdůležitějšími událostmi jsou MENewPresentation, které signalizují, že aplikace prerolluje další topologii, a MEEndOfPresentationSegment, který signalizuje konec segmentu (s výjimkou posledního segmentu).

Vzhledem k tomu, že události v Media Foundation jsou asynchronní a nejsou serializovány pomocí volání metody, přesné pořadí se může lišit. Můžete například obdržet MF_TOPOSTATUS_STARTED_SOURCE pro S1 před voláním aplikace SetTopology pro S2.

Možná nebudete mít v tomto seznamu každou událost. Události MEEndOfPresentation a MESessionEnded se například neodesílají, pokud poslední segment nemá příznak SequencerTopologyFlags_Last.

Nakonec tento seznam neuvádí časový úsek. Doba od začátku S1 do konce S1 je celá doba trvání S1, což může být v závislosti na zdroji několik sekund nebo mnoho hodin.

Příklad 2: Přehrávání s přeskočením segmentů

V tomto příkladu aplikace zařadí do fronty stejné segmenty, ale přeskočí na segment 3, zatímco segment 1 se přehrává. V tomto případě se odesílají následující události:

Když aplikace volá Start přeskočit na segment 3, zdroj sekvenceru zruší segment 1, který se stále přehrává. MEEndOfPresentationSegment událost pro tento segment obsahuje atribut MF_EVENT_SOURCE_TOPOLOGY_CANCELED označující, že segment skončil, protože byl zrušen. Poté, protože segment 2 je již předem vrácen, je tento segment spuštěn, ale okamžitě zrušen. Událost MEEndOfPresentationSegment pro segment 2 obsahuje také atribut MF_EVENT_SOURCE_TOPOLOGY_CANCELED. Relace se pak může přepnout na segment 3 a normálně ji přehrát.

o zdrojovém aplikace Sequencer

zdroje sequenceru