Freigeben über


Informationen zur Mediensitzung

Die Mediensitzung macht die IMFMediaSession-Schnittstelle verfügbar. Es gibt zwei Möglichkeiten, die Mediensitzung zu erstellen, je nachdem, ob Ihre Anwendung geschützte Inhalte unterstützt:

  • Wenn Ihre Anwendung keine geschützten Inhalte unterstützt, können Sie die Mediensitzung erstellen, indem Sie MFCreateMediaSession aufrufen. Diese Funktion erstellt die Mediensitzung innerhalb des Anwendungsprozesses.
  • Um geschützte Inhalte zu unterstützen, erstellen Sie die Mediensitzung, indem Sie MFCreatePMPMediaSession aufrufen. Diese Funktion erstellt die Mediensitzung innerhalb des PMP-Prozesses (Protected Media Path). Die Anwendung empfängt einen Zeiger auf ein Proxyobjekt, das Methodenaufrufe über die Prozessgrenze hinweg marshallt. Beachten Sie, dass die PMP-Mediensitzung zum Wiedergeben von klaren Inhalten und geschützten Inhalten verwendet werden kann.

Jede Anwendung, die die Mediensitzung verwendet, führt die folgenden allgemeinen Schritte aus:

  1. Erstellen Sie eine Topologie.
  2. Stellen Sie die Topologie für die Mediensitzung in eine Warteschlange, indem Sie IMFMediaSession::SetTopology aufrufen.
  3. Steuern Sie den Datenfluss, indem Sie IMFMediaSession::Start, IMFMediaSession::P ause oder IMFMediaSession::Stop aufrufen.
  4. Bevor die Anwendung beendet wird, rufen Sie IMFMediaSession::Close auf, um die Mediensitzung zu schließen.
  5. Fahren Sie alle von der Anwendung erstellten Medienquellen herunter, indem Sie IMFMediaSource::Shutdown aufrufen.
  6. Fahren Sie die Mediensitzung herunter, indem Sie IMFMediaSession::Shutdown aufrufen.

Bei Verwendung der Mediensitzung sollte die Anwendung die Medienquelle nicht direkt starten, anhalten oder beenden. Alle Zustandsänderungen müssen durch Aufrufen von IMFMediaSession-Methoden initiiert werden. Zustandsänderungen in der Medienquelle werden von der Mediensitzung behandelt.

Viele weitere Details hängen von der spezifischen Funktionalität Ihrer Anwendung ab.

Geschützter Inhalt

Zum Wiedergeben von geschützten Inhalten müssen Sie die Mediensitzung im Geschützten Medienpfad (PMP) erstellen, indem Sie MFCreatePMPMediaSession aufrufen. Diese Funktion erstellt eine instance der Mediensitzung im PMP und gibt einen Zeiger auf ein Proxyobjekt zurück, das Schnittstellen über die Prozessgrenze hinweg marshallt.

In den meisten Punkten ist die Verwendung der Mediensitzung im PMP für die Anwendung transparent. Möglicherweise muss die Anwendung jedoch bestimmte Aktionen aufrufen, die es dem Benutzer ermöglichen, den Inhalt wiederzugeben. Beispielsweise muss der Benutzer möglicherweise eine DRM-Lizenz abrufen. Media Foundation definiert mithilfe der IMFContentEnabler-Schnittstelle einen generischen Mechanismus für diese Aktionen.

Weitere Informationen finden Sie in den folgenden Themen:

Präsentationsuhr

Die Mediensitzung verwaltet alle Aspekte der Präsentationsuhr:

  • Erstellen der Präsentationsuhr.

  • Auswählen der Zeitquelle.

  • Benachrichtigung der Mediensenken über die Uhr

  • Starten, Anhalten und Anhalten der Uhr nach Bedarf.

  • Herunterfahren der Uhr.

Um einen Zeiger auf die Präsentationsuhr zu erhalten, rufen Sie IMFMediaSession::GetClock in der Mediensitzung auf. Die Präsentationsuhr gibt erst eine gültige Zeit zurück, bis die Mediensitzung das MESessionTopologyStatus-Ereignis mit dem flag MF_TOPOSTATUS_READY sendet. Bis dahin gibt GetClock MF_E_CLOCK_NO_TIME_SOURCE zurück.

Eine Anwendung, die die Mediensitzung verwendet, sollte die Präsentationsuhr niemals starten, beenden oder anhalten. ändern Sie die Taktrate; oder herunterfahren der Uhr.

Wenn die Anwendung IMFMediaSession::Start aufruft, startet die Mediensitzung die Präsentationsuhr mit einer Startzeit, die der in der Start-Methode angegebenen Startposition entspricht. Weitere Informationen zur Mediensitzung finden Sie unter Mediensitzung.

Mediensitzung