Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sıralayıcı Kaynağı bir dosya dizisi oynattığında, Medya Oturumu genellikle normal kayıttan yürütme sırasında gönderilen ve Medya Oturumu Olayları'nda listelenen tüm olayları gönderir. Uygulama, Medya Oturumu'nun IMFMediaEventGenerator arabirimini kullanarak bu olayları alır.
Buna ek olarak, çalma listesi segmentlerine özgü bazı olaylar vardır.
| Olay | Açıklama |
|---|---|
| MENewPresentation | Uygulamaya bir sonraki topolojinin ön kaydını oluşturması için sinyal gönderir. Ardışık iki sunu arasında sorunsuz bir geçiş sağlamak için sıralayıcı kaynağı bir sonraki topolojiyi önceden yükler. Etkin topoloji yürütülüyor olsa da, kaynakta sonraki bir topoloji olduğu sürece sıralayıcı kaynağı bu olayı sonraki topoloji için gönderir. Bu olayın bu olay verileri, sonraki topolojinin sunu tanımlayıcısıdır. Uygulama, Sıralayıcı Kaynağını Kullanmabölümünde açıklandığı gibi Medya Oturumunda ilgili topolojiyi ayarlamakla sorumludur. |
| MEEndOfPresentationSegment | Sıralayıcı kaynağı, Medya Oturumu geçerli segmenti yürütmeyi tamamladığında bu olayı tetikler. Bu segmentin ardından başka bir kesim gelirse. (Geçerli kesim sonuncuysa sıralayıcı kaynağı bunun yerine meendofpresentation olayı oluşturur.) Medya Oturumu bu olayı uygulamaya iletir. Genellikle, medya oturumu sonraki segmenti işlemeye başladıktan sonra uygulama MEEndOfPresentationSegment alır, ancak medya havuzları önceki segment için örnekleri sunmaya devam eder. |
| MESessionTopologyStatusdurumu MF_TOPOSTATUS_SINK_SWITCHED. | Medya Oturumu, sıralayıcı kaynağında bir sonraki topolojiye geçiş yaptığında ve medya havuzları önceki topolojiyi yürütmeyi tamamladığında bu olayı tetikler. Bu olay, sonraki topolojiye bir işaretçi içerir. |
Örnek 1: Atlamadan kayıttan yürütme
Sıralayıcı kaynağı söz konusu olduğunda, özellikle bir segmentle ilişkili olaylar genellikle bir sonraki segment için olaylarla kesiştiğinden, Medya Oturumu'ndan elde ettiğiniz olayların sayısı kafa karıştırıcı olabilir.
İlk örnekte uygulama S1, S2 ve S3 olarak üç segmenti kuyruğa alır. Üçüncü segmentte, dizideki son segment olduğunu belirten SequencerTopologyFlags_Last bayrağı bulunur. Her olayın karşılık gelen segmenti parantez içinde verilir. İşlem sırasını daha net hale getirmek için uygulamanın SetTopology çağrıları da listelenir.
- Uygulama, IMFMediaSession::SetTopology(S1)çağırır
- MESessionTopologySet (S1)
- MESessionTopologyStatus: MF_TOPOSTATUS_READY (S1)
- MENewPresentation (S2 preroll)
- Uygulama çağrıları IMFMediaSession::SetTopology (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S1 başlangıcı)
- MESessionTopologySet (S2)
- MEEndOfPresentationSegment (S1 sonu)
- MESessionTopologyStatus: MF_TOPOSTATUS_ENDED (S1)
- MESessionTopologyStatus: MF_TOPOSTATUS_SINK_SWITCHED (S2'ye geçiş)
- MESessionTopologyStatus: MF_TOPOSTATUS_READY (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S2 başlangıcı)
- MENewPresentation (S3 preroll)
- Uygulama çağrıları IMFMediaSession::SetTopology (S2)
- MESessionTopologySet (S3)
- MEEndOfPresentationSegment (S2 sonu)
- MESessionTopologyStatus: MF_TOPOSTATUS_ENDED (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_SINK_SWITCHED (S3'e geçiş)
- MESessionTopologyStatus: MF_TOPOSTATUS_READY (S3)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S3 başlangıcı)
- MEEndOfPresentation (S3 sonu; son segment)
- MESessionTopologyStatus: MF_TOPOSTATUS_ENDED
- MESessionEnded
Bu liste, alabileceğiniz her olayı içermez. (Örneğin, oturum özellikleri her değiştiğinde gönderilen MESessionCapabilitiesChanged olayını atlar. Bir uygulama genellikle bir sunu boyunca birden çok MESessionCapabilitiesChanged olayı alır.) Burada listelenen olaylar, bir kesimden diğerine geçişi gösteren olaylardır. En önemli olaylar menewPresentation , uygulamaya sonraki topolojiyi önceden kaydetmesi için sinyal gönderir ve bir segmentin sonunu (son segment hariç) işaret eden MEEndOfPresentationSegment .
Media Foundation'daki olaylar zaman uyumsuz olduğundan ve yöntem çağrılarıyla serileştirilmediğinden, tam sıra farklılık gösterebilir. Örneğin, uygulama S2 için SetTopologyçağırmadan önce S1 için MF_TOPOSTATUS_STARTED_SOURCE alabilirsiniz.
Ayrıca, burada listelenen her olayı alamayabilirsiniz. Örneğin, meendofpresentation ve MESessionEnded olayları, son segmentte SequencerTopologyFlags_Last bayrağı olmadığı sürece gönderilmez.
Son olarak, bu liste zamanın geçişini göstermez. "S1'in başlangıcından" "S1'in sonuna" kadar olan süre, kaynağa bağlı olarak birkaç saniye veya birkaç saat olabilen S1 süresinin tamamıdır.
Örnek 2: Segment Atlama ile kayıttan yürütme
Bu örnekte uygulama aynı segmentleri kuyruğa alır, ancak segment 1 yürütülüyorken segment 3'e atlar. Bu durumda, aşağıdaki olaylar gönderilir:
- Uygulama, IMFMediaSession::SetTopology(S1)çağırır
- MESessionTopologySet (S1)
- MESessionTopologyStatus: MF_TOPOSTATUS_READY (S1)
- MENewPresentation (S2 preroll)
- Uygulama çağrıları IMFMediaSession::SetTopology (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S1 başlangıcı)
- MESessionTopologySet (S2)
- IMFMediaSession::Startuygulama çağrıları (S3'e atlayın)
- MENewPresentation (S3 preroll)
- UYGULAMA çağrısı IMFMediaSession::SetTopology (S3)
- MESessionStarted
- MEEndOfPresentationSegment (S1 iptal edildi)
- MESessionTopologyStatus: MF_TOPOSTATUS_ENDED (S1)
- MESessionTopologySet (S3)
- MESessionTopologyStatus: MF_TOPOSTATUS_SINK_SWITCHED (S2'ye geçiş)
- MESessionTopologyStatus: MF_TOPOSTATUS_READY (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S2)
- MEEndOfPresentationSegment (S2 iptal edildi)
- MESessionTopologyStatus: MF_TOPOSTATUS_ENDED (S2)
- MESessionTopologyStatus: MF_TOPOSTATUS_SINK_SWITCHED (S3'e geçiş)
- MESessionTopologyStatus: TOPOSTATUS_READY (S3)
- MESessionTopologyStatus: MF_TOPOSTATUS_STARTED_SOURCE (S3)
Uygulama, segment 3'e atlamak için başlangıççağırdığında sıralayıcı kaynağı, yürütülmeye devam eden 1. segmenti iptal eder. Bu segment için MEEndOfPresentationSegment olayı, segmentin iptal edildiği için sona erdiğini gösteren MF_EVENT_SOURCE_TOPOLOGY_CANCELED özniteliğini içerir. Ardından, segment 2 zaten önceden toplandığından, bu segment başlatılır ancak hemen iptal edilir. Segment 2 için MEEndOfPresentationSegment olayı da MF_EVENT_SOURCE_TOPOLOGY_CANCELED özniteliğini içerir. Oturum daha sonra segment 3'e geçebilir ve normal şekilde oynatabilir.
İlgili konular
-
Sıralayıcı Kaynak Hakkında