Remoting des Windows Media Player-Steuerelements

Wenn Sie das Windows Medienwiedergabe Steuerelement in ein C++-Programm einbetten, können Sie es als Remoteerweiterung des vollständigen Modus des Players verwenden. Dies wird als "Remoting" des Windows Medienwiedergabe-Steuerelements bezeichnet, und es ermöglicht Ihnen, alle Features des vollmodus Player bereitzustellen, ohne sie selbst zu implementieren.

Wenn Sie das Steuerelement remote machen, teilt sie das gleiche Wiedergabemodul wie der vollständige Modus des Players, und Ihre Benutzer können zwischen eingebettetem Modus (dem "angedockten" Zustand) und dem vollmodus (dem Zustand "Rückgängig" ) wechseln, während die digitale Medienwiedergabe weiterhin unterbrechungsfrei bleibt.

Aktivieren der Remoteeinbettung

Um die Remoteeinbettung des Windows Medienwiedergabe-Steuerelements zu aktivieren, muss Ihr Programm die IServiceProvider- und IWMPRemoteMediaServices-Schnittstellen implementieren. IServiceProvider ist eine Standardmäßige Component Object Model (COM)-Schnittstelle mit einer einzigen Methode namens QueryService. Windows Medienwiedergabe ruft diese Methode auf, um einen Zeiger auf eine IWMPRemoteMediaServices-Schnittstelle abzurufen.

IWMPRemoteMediaServices verfügt über mehrere Methoden, aber nur zwei davon sind direkt für Remoting relevant. In GetApplicationName geben Sie den Namen Ihres Programms zurück, das Windows Medienwiedergabe der Liste "Zu anderen Programmen wechseln" im Menü "Ansicht" hinzugefügt wird. In GetServiceType geben Sie den Einbettungsmodus des Steuerelements an, indem Sie einen Wert von "Remote" oder "Local" zurückgeben. Wenn eine Remoteverbindung erfolgreich hergestellt wurde, gibt die get_isRemote-Methode der IWMPPlayer4-Schnittstelle "true" zurück.

Angeben einer exklusiven Online-Store

Mit Windows Medienwiedergabe 11 kann eine Anwendung, die das Player-Steuerelement remote einbetten, einen exklusiven Onlinespeicher angeben. In diesem Fall ist die Dienstauswahl in Windows Medienwiedergabe deaktiviert, und nur der angegebene Onlinespeicher steht dem Benutzer zur Verfügung. Ausführliche Informationen zum Angeben eines exklusiven Online-Stores finden Sie unter Exklusive Online-Stores.

Andocken und Ausocken

Die IWMPPlayer4-Schnittstelle bietet auch Zugriff auf die IWMPPlayerApplication-Schnittstelle über die get_playerApplication-Methode . Verwenden Sie IWMPPlayerApplication , um zwischen den angedockten und nicht angedockten Zuständen zu wechseln und den aktuellen angedockten Zustand und die Position der Video- oder Visualisierungsanzeige zu bestimmen.

Die IWMPPlayerApplication::switchToPlayerApplication-Methode hebt das Steuerelement ab, indem sie den vollständigen Modus von Windows Medienwiedergabe öffnen und die Video- oder Visualisierungsanzeige in den Bereich "Jetzt wiedergeben" übertragen. Die IWMPPlayerApplication::switchToControl-Methode dockt das Steuerelement an, indem sie die Video- oder Visualisierungsanzeige an Ihr Programm übertragen und den vollständigen Modus des Players schließen, wenn es geöffnet ist. Das Steuerelement kann auch angedockt werden, indem sie ein Programm aus der Liste "Zu anderen Programmen" auswählen oder den vollständigen Modus des Spielers schließen. In beiden Fällen bleibt jede digitale Medien, die wiedergegeben wird, unterbrechungsfrei.

Übertragen der Video- oder Visualisierungsanzeige

Wenn mehrere Programme mit eingebetteten, remoteierten Windows Medienwiedergabe Steuerelementen gleichzeitig ausgeführt werden, teilen alle Steuerelemente das gleiche Wiedergabemodul. Sie teilen auch die gleiche Instanz des vollständigen Modus des Spielers im unbeockten Zustand. Im angedockten Zustand kann jedoch nur ein Steuerelement das Video oder die Visualisierung anzeigen. Im nicht ausgeockten Zustand zeigt nur der vollständige Modus des Players das Video oder die Visualisierung an. Die SwitchToControl-Methode funktioniert sowohl in den angedockten als auch anockten Zuständen und überträgt die Video- oder Visualisierungsanzeige an das Programm, das sie aufruft.

Der einzige Unterschied zwischen den angedockten und ungeockten Zuständen ist das Vorhandensein des vollständigen Modus von Windows Medienwiedergabe und deren Besitz der Video- oder Visualisierungsanzeige. Im ungeockten Zustand sind alle eingebetteten, derzeit ausgeführten Remotesteuerelemente weiterhin sichtbar, und ihre Benutzerschnittstellen sind weiterhin voll funktionsfähig. Wenn ein Video- oder Visualisierungsfenster vorhanden ist, ist es jedoch leer. Im angedockten Zustand besitzt nur eine der eingebetteten, remotegesteuerten Steuerelemente die Anzeige, aber alle Benutzeroberflächen funktionieren weiterhin.

Ausblenden oder Ändern des Steuerelements im Zustand "Rückgängig"

Sie müssen Ihre eigene Implementierung bereitstellen, wenn Sie die Benutzeroberfläche eines eingebetteten Steuerelements im nicht abgeockten Zustand ausblenden oder ändern möchten oder wenn Ihr Programm nicht über die Anzeige verfügt. Sie können diese Änderungen vornehmen, wenn Sie das Steuerelement andocken und rückgängig machen, oder Sie können diese als Reaktion auf Windows Medienwiedergabe Ereignisse vornehmen. Da der Player über die Option "Zu anderes Programm wechseln " angedockt werden kann, ist es in der Regel jedoch besser, diese Funktionalität als Reaktion auf Ereignisse bereitzustellen.

Sie können Ereignishandler für die Ereignisse SwitchedToPlayerApplication und SwitchedToControl implementieren oder einen einzelnen Ereignishandler für das PlayerDockedStateChange-Ereignis implementieren. Im letzteren Fall können Sie den angedockten Zustand ermitteln, indem Sie IWMPPlayerApplication::get_playerDocked aufrufen. Verwenden Sie in beiden Fällen IWMPPlayerApplication::get_hasDisplay , um zu bestimmen, ob Ihr Programm die Video- oder Visualisierungsanzeige besitzt.

Erneutes Einrichten einer Remoteverbindung

Unter bestimmten Umständen schlägt die Verbindung zwischen einem remoteierten, eingebetteten Steuerelement und dem eigenständigen Player fehl, wobei Die Zeiger auf die Windows Medienwiedergabe Schnittstellen ungültig werden. Windows Medienwiedergabe versucht automatisch, eine Verbindung herzustellen, und löst das PlayerReconnect-Ereignis aus, um diesen Versuch zu signalisieren. Obwohl die Erneute Verbindung automatisch ist, müssen Sie einen Ereignishandler für dieses Ereignis bereitstellen, wenn Sie Ihre ungültigen Zeiger freigeben und neue abrufen möchten, damit Sie über die neue Verbindung auf den eigenständigen Player zugreifen können.

Steuern des ungeockten Spielers

Alle Remoteinstanzen des Windows Medienwiedergabe-Steuerelements können den vollständigen Modus des Spielers unabhängig vom angedockten Zustand bearbeiten. Features, die keine Relevanz für den vollständigen Modus des Spielers haben, werden jedoch ignoriert, bis das Windows Medienwiedergabe-Steuerelement angedockt wird. Dazu gehören Eigenschaften des IWMPPlayer und abgeleiteter Schnittstellen, z. B. enableContextMenu, uiMode und windowlessVideo.

Fehlerdialogfelder

Von einer remoteierten Windows Medienwiedergabe Steuerelementinstanz, der Einstellungen. enableErrorDialogs-Eigenschaft verhält sich auf bestimmte Weise. Es gelten die folgenden Regeln:

  • Wenn Windows Medienwiedergabe rückgängig gemacht wird (die Windows Medienwiedergabe UI ist sichtbar), wird die EnableErrorDialogs-Eigenschaft ignoriert, und Fehlerdialogfelder werden vom Player behandelt.
  • Wenn Windows Medienwiedergabe angedockt wird, gilt der durch jede Remoteinstanz des Steuerelements für enableErrorDialogs angegebene Wert nur für die einzelne Steuerelementinstanz. Wenn eine bestimmte Steuerelementinstanz einen Wert von "true" für enableErrorDialogs angibt, zeigt diese Instanz nur ein Dialogfeld an, wenn ein Fehler auftritt, wenn alle anderen Instanzen des Steuerelements einen Wert von "false" angegeben haben.

Remoting im Hintergrund

Sie sollten vermeiden, dass eine Remoteinstanz des Spielers im Hintergrund ausgeführt wird, während zeiten, in denen das Steuerelement nicht verwendet wird. Da die Remote-Player-Steuerelementinstanz das Wiedergabemodul mit dem Vollmodus Player teilt, kann die Ausführung einer Hintergrundinstanz zu unerwartetem Verhalten führen. Der Benutzer kann beispielsweise den vollständigen Player schließen, während eine Datei wiedergegeben wird. Der Benutzer würde erwarten, dass die Dateiwiedergabe beim Schließen des Players vollständig beendet würde, aber Audio kann weiterhin wiedergegeben werden, da das Wiedergabemodul weiterhin aktiv ist.

Beispiele

Das Windows Medienwiedergabe SDK-Setuppaket installiert Beispiele, die Remoting veranschaulichen. Weitere Informationen finden Sie in den Beispielen RemoteSkin und WMPML.

Beispiele

Verwenden des Windows Medienwiedergabe-Steuerelements in einem C++-Programm