Verwenden von Medienquellen mit der Mediensitzung

Wenn Sie die Mediensitzung zum Steuern der Wiedergabe verwenden, ist die Gruppe der Methoden, die Sie auf einer Medienquelle aufrufen sollten, eingeschränkt. In diesem Abschnitt wird beschrieben, wie Sie die Medienquelle in Verbindung mit der Mediensitzung verwenden.

Nachfolgend finden Sie die grundlegenden Schritte, die Ihre Anwendung ausführt:

  1. Erstellen Sie die Medienquelle. Verwenden Sie zum Erstellen einer Medienquelle den Quelllöser. Weitere Informationen finden Sie unter Source Resolver. Der Quelllöser gibt einen Zeiger auf die IMFMediaSource-Schnittstelle der Quelle zurück. (Wenn Sie eine benutzerdefinierte Medienquelle geschrieben haben, können Sie stattdessen eine benutzerdefinierte Erstellungsmethode bereitstellen.)

  2. Konfigurieren Sie die Präsentation. Um die Präsentation der Quelle zu konfigurieren, rufen Sie IMFMediaSource::CreatePresentationDescriptor auf. Sie können diese Kopie ändern, aber die Änderungen werden erst aktiv, wenn die Wiedergabe gestartet wird. Ändern Sie die Präsentationsdeskriptor während der Wiedergabe nicht. Weitere Informationen finden Sie unter Präsentationsdeskriptoren.

  3. Erstellen Sie eine Topologie, die die Medienquelle enthält. Weitere Informationen finden Sie unter Topologien.

  4. Verwenden Sie die Mediensitzung, um die Wiedergabe zu steuern. Die Mediensitzung ruft Methoden auf der Medienquelle auf. Die Anwendung sollte zu diesem Zeitpunkt keine Methoden auf der Medienquelle aufrufen.

  5. Rufen Sie vor dem Freigeben der Medienquelle IMFMediaSource::Herunterfahren auf, um die Quelle herunterzufahren.

    Hinweis

    Wenn Sie die Sequenzerquelle verwenden, behandelt die Sequenzerquelle das Herunterfahren der Segmentquellen. Weitere Informationen finden Sie unter Sequenzerquelle.

     

Wenn Sie die Mediensitzung verwenden, sind die einzigen Methoden, die Sie auf der Medienquelle aufrufen sollten, createPresentationDescriptor, GetCharacteristics und Shutdown. Dies gilt insbesondere für:

  • Rufen Sie "Start", "Anhalten" oder "Beenden" nicht auf; Diese Methoden sollten nur von der Mediensitzung aufgerufen werden.

  • Rufen Sie keine IMFMediaStream-Methoden auf.

  • Rufen Sie keine Ereignisse direkt aus der Medienquelle oder einem der Datenströme ab. Die Mediensitzung muss diese Ereignisse für die Pipeline erhalten, um ordnungsgemäß zu funktionieren. Die Mediensitzung leitet alle Ereignisse weiter, die von der Anwendung benötigt werden.

Mediensitzung