DE102019204521A1 - Kontextabhängiges Routing von Mediendaten - Google Patents

Kontextabhängiges Routing von Mediendaten Download PDF

Info

Publication number
DE102019204521A1
DE102019204521A1 DE102019204521.9A DE102019204521A DE102019204521A1 DE 102019204521 A1 DE102019204521 A1 DE 102019204521A1 DE 102019204521 A DE102019204521 A DE 102019204521A DE 102019204521 A1 DE102019204521 A1 DE 102019204521A1
Authority
DE
Germany
Prior art keywords
playback
media
group
devices
streaming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102019204521.9A
Other languages
English (en)
Inventor
Deepak Iyer
Thomas Alsina
Edward T. Schmidt
Vijay Sundaram
Elena LEYFMAN
David P. Saracino
Johannes P. Schmidt
Astrid Yi
Adam A. Sonnanstine
Jonathan A. Bennet
Gregory R. Chapman
Aparna Akella
Shreyas Nandagudi Sreesha
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE102019204521A1 publication Critical patent/DE102019204521A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

In einigen Implementierungen kann ein System konfiguriert sein, um Mediendaten auf der Grundlage eines Kontexts, der den Mediendaten zugeordnet ist, zu Wiedergabevorrichtungen weiterzuleiten. Zum Beispiel können die Mediendaten Audio- und/oder Videodaten einschließen, die Medienelementen zugeordnet sind, wie Musik, Filme, Fernsehsendungen usw. Die Mediendaten können Audio- und/oder Videodaten einschließen, die durch Software erzeugt werden, wie Audio-/Videoausgaben von Spielanwendungen und/oder einem Betriebssystem. Der Kontext kann basierend auf der Quelle der Mediendaten bestimmt werden, und die Mediendaten können basierend auf dem bestimmten Kontext an Wiedergabevorrichtungen weitergeleitet werden. Wenn der Kontext beispielsweise ein Medienkontext ist, der einer Quelle von Medienelementen zugeordnet ist, können die Mediendaten zur Präsentation an entfernte Wiedergabevorrichtungen weitergeleitet werden. Wenn der Kontext ein Systemkontext ist, der einer Softwarequelle zugeordnet ist, können die Mediendaten durch eine lokale Vorrichtung dargestellt werden.

Description

  • TECHNISCHES GEBIET
  • Die Offenbarung bezieht sich allgemein auf das Verwalten von Medienwiedergabe über vernetzte Wiedergabevorrichtungen.
  • HINTERGRUND
  • Drahtlose Audio/Video-Vorrichtungen (A/V) werden allgegenwärtig. Zum Beispiel werden drahtlose Lautsprechersysteme in vielen Wohnungen verwendet, um Musik abzuspielen. Drahtlose Streaming-Vorrichtungen werden verwendet, um Video auf Fernsehgeräte und/oder Audio durch angeschlossene Lautsprechersysteme abzuspielen. Manchmal sind die drahtlosen Lautsprechersysteme und/oder Streaming-Vorrichtungen intelligente Rechenvorrichtungen, die konfiguriert werden können, um Streaming-Audio- und Videodaten zu streamen und/oder zu empfangen. In einigen Fällen können mehrere intelligente A/V-Vorrichtungen im ganzen Haus und in verschiedenen Konfigurationen platziert werden, um verschiedene A/V-Funktionen im ganzen Haus und/oder in verschiedenen Räumen des Hauses bereitzustellen. Für die Konfiguration, Überwachung und Steuerung dieser verschiedenen A/V-Vorrichtungen werden Systeme benötigt.
  • ZUSAMMENFASSUNG
  • In einigen Implementierungen kann ein System konfiguriert sein, um es Fernsteuervorrichtungen zu ermöglichen, stille Statusinformationen zu verschiedenen Audio/Video-Wiedergabevorrichtungen zu erhalten. Beispielsweise kann eine Streaming-Vorrichtung (z. B. eine Benutzervorrichtung, ein Telefon, usw.) eine Streaming-Verbindung zu einer Wiedergabevorrichtung herstellen. Die Wiedergabevorrichtung kann so konfiguriert sein, dass sie nur eine einzelne Streaming-Verbindung (d. h. eine Masterverbindung) akzeptiert. Eine Fernsteuervorrichtung (z. B. eine Benutzervorrichtung, ein Telefon usw.) kann sich still mit der Wiedergabevorrichtung verbinden (d. h. eine Steuerverbindung), ohne die Masterverbindung zu unterbrechen, um Statusinformationen über die Wiedergabevorrichtung und/oder die Medien zu erhalten, die an die Wiedergabevorrichtung gestreamt werden. Die Fernsteuervorrichtung kann Befehle durch die Steuerverbindung bereitstellen, um die Wiedergabe der gestreamten Medien an der Wiedergabevorrichtung einzustellen.
  • In einigen Implementierungen kann ein System konfiguriert sein, Gruppen von Wiedergabevorrichtungen zu verwalten. Beispielsweise können Wiedergabevorrichtungen dynamisch auf eine Vielzahl von Weisen gruppiert werden. Jede Wiedergabevorrichtung kann Attribute speichern, die die Gruppe definieren, zu der die Wiedergabevorrichtung gehört. Jede Wiedergabevorrichtung kann ihre Gruppenattribute an Fernsteuervorrichtungen senden, und die Fernsteuervorrichtungen können Gruppen von Wiedergabevorrichtungen basierend auf den Gruppenattributen bestimmen. Die Fernsteuervorrichtungen können dann grafische Benutzerschnittstellen konfigurieren und darstellen, die die verschiedenen Gruppen von Wiedergabevorrichtungen darstellen. In einigen Implementierungen kann eine Gruppe von Wiedergabevorrichtungen als eine persistente Gruppe konfiguriert sein. Beispielsweise kann ein Paar von Wiedergabevorrichtungen (z. B. drahtlose Lautsprecher) als Stereopaar konfiguriert sein. Das Paar von Wiedergabevorrichtungen kann Attributdaten speichern und senden, die anzeigen, dass das Paar Wiedergabevorrichtungen eine persistente Gruppe ist, so dass Fernsteuervorrichtungen die persistente Gruppe als eine Einzelvorrichtung darstellen und steuern können.
  • In einigen Implementierungen kann ein System konfiguriert werden, um die Belastung durch die Kopplung von Benutzervorrichtungen mit Wiedergabevorrichtungen zu reduzieren. So können beispielsweise alle Benutzer (oder Benutzervorrichtungen), die gemeinsam in einer bestimmten Umgebung (z. B. einem Haus) verwendet werden, als autorisierte Benutzer von Wiedergabevorrichtungen innerhalb der jeweiligen Umgebung konfiguriert werden. Wenn einer der autorisierten Benutzer eine Benutzervorrichtung mit einer Wiedergabevorrichtung koppelt, können durch die einmalige Kopplung alle Benutzervorrichtungen für alle autorisierten Benutzer automatisch mit der Wiedergabevorrichtung gekoppelt werden. Somit wird nur ein einzelner autorisierter Benutzer mit dem Kopplungsprozess belastet, um alle autorisierten Benutzer mit der Wiedergabevorrichtung zu verbinden.
  • In einigen Implementierungen kann ein System konfiguriert sein, um Mediendaten auf der Grundlage eines Kontexts, der den Mediendaten zugeordnet ist, zu Wiedergabevorrichtungen weiterzuleiten. Zum Beispiel können die Mediendaten Audio- und/oder Videodaten einschließen, die Medienelementen zugeordnet sind, wie Musik, Filme, Fernsehsendungen usw. Die Mediendaten können Audio- und/oder Videodaten einschließen, die durch Software erzeugt werden, wie Audio-/Videoausgaben von Spielanwendungen und/oder einem Betriebssystem. Der Kontext kann basierend auf der Quelle der Mediendaten bestimmt werden, und die Mediendaten können basierend auf dem bestimmten Kontext an Wiedergabevorrichtungen weitergeleitet werden. Wenn der Kontext beispielsweise ein Medienkontext ist, der einer Quelle von Medienelementen zugeordnet ist, können die Mediendaten zur Präsentation an entfernte Wiedergabevorrichtungen weitergeleitet werden. Wenn der Kontext ein Systemkontext ist, der einer Softwarequelle zugeordnet ist, können die Mediendaten durch eine lokale Vorrichtung dargestellt werden.
  • Die Details einer oder mehrerer Implementierungen sind in den begleitenden Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und potentielle Vorteile werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich.
  • Figurenliste
    • 1 ist eine beispielhafte grafische Benutzerschnittstelle (GUI) zum Steuern von Wiedergabevorrichtungen.
    • 2 veranschaulicht eine beispielhafte grafische Benutzerschnittstelle zum Darstellen von Steuerelementen für eine Wiedergabegruppe.
    • 3 ist ein Blockdiagramm eines beispielhaften Systems zum Fernsteuern von Wiedergabevorrichtungen mit einer Fernsteuervorrichtung.
    • 4 ist ein Blockdiagramm eines beispielhaften Systems zum Fernsteuern einer Wiedergabegruppe mit einer Fernsteuervorrichtung.
    • 5 ist ein Blockdiagramm eines beispielhaften Systems zum Fernsteuern einer nicht erkennbaren Wiedergabevorrichtung mit einer Fernsteuervorrichtung.
    • 6 ist ein Blockdiagramm eines beispielhaften Systems zum Verwalten dynamischer Wiedergabevorrichtungsgruppen.
    • 7 ist ein Blockdiagramm eines beispielhaften Systems zum Verwalten persistenter Wiedergabegruppen.
    • 8 ist ein Blockdiagramm eines Systems zum Streamen von Medienelementen zu einer persistenten Gruppe.
    • 9 ist ein Blockdiagramm eines Systems zum Streaming von Medienelementen zu einer persistenten Gruppe.
    • 10 ist ein Blockdiagramm von einem System zum Darstellen von Medienelementen, die von einer primären Wiedergabevorrichtung in einer persistenten Gruppe gestreamt werden.
    • 11 ist ein Blockdiagramm eines beispielhaften Systems zum Synchronisieren der Wiederaufnahme der Wiedergabe zwischen Wiedergabevorrichtungen innerhalb einer Wiedergabegruppe.
    • 12 ist ein Blockdiagramm eines beispielhaften Systems zum automatischen Koppeln von Benutzervorrichtungen mit Wiedergabevorrichtungen.
    • 13 ist ein Blockdiagramm eines beispielhaften Systems zum Verwalten von Lautstärkeänderungen zwischen vernetzten Wiedergabevorrichtungen.
    • 14 ist ein Blockdiagramm eines beispielhaften Mediensystems, das konfiguriert ist, um automatisch Streaming-Medienverbindungen zwischen Wiedergabevorrichtungen aufzubauen.
    • 15 ist ein Blockdiagramm eines beispielhaften Mediensystems, das konfiguriert ist, um Mediendaten dynamisch zu Wiedergabevorrichtungen weiterzuleiten.
    • 16 ist ein Blockdiagramm eines beispielhaften Mediensystems zum dynamischen Routing basierend auf Wiedergabevorrichtungsfähigkeiten.
    • 17 ist ein Blockdiagramm eines beispielhaften Mediensystems zum Bereitstellen eines Zugriffs auf Mediendaten in einer zweiten Sprache.
    • 18 ist ein Flussdiagramm eines beispielhaften Prozesses 1800 zum Fernsteuern einer Wiedergabevorrichtung.
    • 19 ist ein Flussdiagramm eines beispielhaften Prozesses zum Verwalten von Wiedergabegruppen.
    • 20 ist ein Flussdiagramm eines beispielhaften Prozesses zum effizienten Koppeln autorisierter Benutzervorrichtungen mit einer Wiedergabevorrichtung.
    • 21 ist ein Flussdiagramm eines beispielhaften Prozesses zum Erzeugen von Kopplungstoken für mehrere Benutzervorrichtungen.
    • 22 ist ein Flussdiagramm eines beispielhaften Prozesses zum kontextabhängigen Routing von Mediendaten.
    • 23 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die die Merkmale und Prozesse der 1-22 implementieren kann.
  • Ähnliche Bezugszeichen in den verschiedenen Zeichnungen geben ähnliche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist eine beispielhafte grafische Benutzerschnittstelle (GUI) 100 zum Steuern von Wiedergabevorrichtungen. So kann beispielsweise GUI 100 von einer Rechenvorrichtung, wie beispielsweise einem Smartphone, einem Tablet-Computer, einem Laptop-Computer, einer tragbaren Rechenvorrichtung oder jeder anderen Art von Rechenvorrichtung mit angeschlossener Anzeige dargestellt werden. Um die GUI 100 zu erzeugen, kann die Rechenvorrichtung (z. B. eine Fernsteuervorrichtung, Streaming-Vorrichtung usw.) drahtlos mit verschiedenen Wiedergabevorrichtungen (z. B. drahtlosen Lautsprechern, Set-Top-Boxen, Fernsehgeräten usw.) verbunden sein und Zustands- und Attributinformationen von den Wiedergabevorrichtungen sammeln. Basierend auf den empfangenen Attributdaten kann die Rechenvorrichtung die GUI 100 erzeugen, die Darstellungen individueller Wiedergabevorrichtungen (z. B. im Grafikelement 102) und/oder Gruppen von Wiedergabevorrichtungen (z. B. dargestellt durch grafische Elemente 130 und 140) einschließt. Unter Verwendung der von den Wiedergabevorrichtungen bereitgestellten Zustandsinformationen kann die Rechenvorrichtung Informationen darstellen, welche die gegenwärtig von den Wiedergabevorrichtungen abgespielten Medien, die zur Einstellung der Wiedergabe der abgespielten Medien verfügbaren Wiedergabesteuerungen und/oder andere Informationen beschreiben, wie hier nachstehend weiter beschrieben wird.
  • In einigen Implementierungen kann die GUI 100 das Grafikelement 102 zum Auswählen und/oder Steuern einzelner Wiedergabevorrichtungen beinhalten. Zum Beispiel können individuelle Wiedergabevorrichtungen die Fähigkeit der Wiedergabevorrichtungen ankündigen, Medien zu empfangen, die von der Rechenvorrichtung gestreamt werden. Wenn die Rechenvorrichtung die Informationen empfängt, die die einzelnen Wiedergabevorrichtungen identifizieren, kann die Rechenvorrichtung ein Grafikelement 102 erzeugen, das die Wiedergabevorrichtungen identifiziert. In einigen Implementierungen kann die Rechenvorrichtung selbst innerhalb des Grafikelements 102 identifiziert werden. Beispielsweise kann das Grafikelement 102 einen Anzeigebereich 104 zum Identifizieren des Medienelements (z. B. Lied, Film, Fernsehsendung usw.) aufweisen, das abgespielt wird, und die Vorrichtung, die die Medien abspielt. In dem Beispiel von 1 gibt der Anzeigebereich 104 an, dass das Telefon des Benutzers ein Lied abspielt.
  • In einigen Implementierungen kann das Grafikelement 102 Grafikelemente 108, 112 und/oder 116 enthalten, die Wiedergabevorrichtungen identifizieren. In dem Beispiel von 1 ist die Rechenvorrichtung, die die GUI 100 darstellt, das Telefon des Benutzers, so dass das Telefon des Benutzers in dem Grafikelement 108 identifiziert wird. Das Grafikelement 108 kann auch einen Indikator (z. B. eine Prüfmarke) einschließen, der anzeigt, dass das Telefon des Benutzers die gegenwärtig ausgewählte Wiedergabevorrichtung ist. Das Grafikelement 102 kann auch ein Grafikelement 112 einschließen, das anzeigt, dass ein Fernseher oder eine Set-Top-Box verfügbar ist, um das ausgewählte Medienelement abzuspielen. Das Grafikelement 102 kann ein Grafikelement 116 einschließen, das anzeigt, dass ein drahtloser Lautsprecher verfügbar ist, um das ausgewählte Medienelement abzuspielen. Wenn die Rechenvorrichtung (z. B. das Benutzertelefon) eine Auswahl eines oder beider der grafischen Elemente 112 und/oder 116 erhält, kann die Rechenvorrichtung das ausgewählte Medienelement (z. B. Lied) zu den ausgewählten Wiedergabevorrichtungen leiten und das Abspielen des ausgewählten Medienelements durch die Ausgabekomponenten (z. B. Lautsprecher, Anzeige usw.) der Rechenvorrichtung stoppen. Beim Streaming von Medien von der Rechenvorrichtung wird die Rechenvorrichtung zur Master-Vorrichtung relativ zu der oder den Wiedergabevorrichtungen, zu denen das Medienelement gestreamt wird. In einigen Implementierungen ist jede Wiedergabevorrichtung so konfiguriert, dass sie nur eine Master-Vorrichtung aufweist. Wenn eine zweite Rechenvorrichtung daher das Streaming zu einer der ausgewählten Wiedergabevorrichtungen startet, übernimmt die zweite Rechenvorrichtung (z. B. kapert) die Verbindung und wird der Master der Wiedergabevorrichtung.
  • In einigen Implementierungen kann das Grafikelement 102 einen Medienwiedergabesteuerbereich 120 enthalten. Zum Beispiel kann der Bereich 120 Medienwiedergabe-Steuerelemente (z. B. Wiedergabetaste, Rückspultaste, Vorspultaste, Lautstärkeregler usw.) für die Medien beinhalten, die von der Rechenvorrichtung abgespielt oder von ihr gestreamt werden. In dem Beispiel von 1 zeigt der Bereich 120 einen Lautstärkeregler 122 zum Spezifizieren und/oder Einstellen der Lautstärke, mit der das Medienelement durch die ausgewählten Wiedergabevorrichtungen abgespielt wird. So kann der Benutzer beispielsweise den Lautstärkehebel 124 entlang des Lautstärkereglers 122 schieben, um die Lautstärke nach oben oder unten einzustellen.
  • In einigen Implementierungen kann die GUI 100 ein Grafikelement 130 einschließen, das eine dynamische Wiedergabevorrichtungsgruppe darstellt. Beispielsweise kann ein Benutzer eine Eingabe an die Rechenvorrichtung bereitstellen, um Wiedergabevorrichtungen in Wiedergabevorrichtungsgruppen (d. h. Wiedergabegruppen) zu konfigurieren. In einigen Implementierungen kann der Benutzer eine Eingabe an eine Software-Anwendung (z. B. Home-Anwendung 332, unten beschrieben) auf der Rechenvorrichtung bereitstellen, um anzuzeigen, welche Wiedergabevorrichtungen in einer bestimmten dynamischen Wiedergabegruppe eingeschlossen sein sollen. So kann der Benutzer beispielsweise Wiedergabevorrichtungen per Drag & Drop in die jeweilige dynamische Wiedergabegruppe ziehen. Der Benutzer kann bestimmen, dass die im selben Raum des Hauses des Benutzers befindlichen Wiedergabevorrichtungen (z. B. wie durch die Home-Anwendung 332 bestimmt) Teil der bestimmten dynamischen Wiedergabegruppe sein sollen. Der Benutzer kann beispielsweise bestimmen, dass zwei Wiedergabevorrichtungen (z. B. drahtlose Lautsprecher) im Wohnzimmer des Benutzers Medien als eine Gruppe wiedergeben sollen. Die dynamische Wiedergabegruppe kann gemäß den Wünschen des Benutzers konfiguriert und rekonfiguriert werden. Beispielsweise kann es sein, dass der Benutzer Musik im Wohnzimmer hören und eine Lautsprechergruppe im Wohnzimmer erzeugen möchte. Später möchte der Benutzer eventuell die Lautsprecher im Wohnzimmer und in der Küche gruppieren und die Wiedergabevorrichtungen im Wohnzimmer und in der Küche in eine neue Gruppe rekonfigurieren. In einigen Implementierungen kann eine einzelne Wiedergabevorrichtung Teil mehrerer verschiedener dynamischer Wiedergabegruppen sein. Zum Beispiel kann der Benutzer eine dynamische Wiedergabegruppe konfigurieren, die Wiedergabevorrichtungen im Wohnzimmer einschließt. Der Benutzer kann eine andere dynamische Wiedergabegruppe konfigurieren, die Wiedergabevorrichtungen in der Küche einschließt. Der Benutzer kann noch eine weitere dynamische Wiedergabegruppe konfigurieren, die Wiedergabevorrichtungen im Wohnzimmer und in der Küche einschließt. So kann eine Wiedergabevorrichtung im Wohnzimmer zur Wiedergabegruppe Wohnzimmer und der kombinierten Wiedergabegruppe Küche/Wohnzimmer gehören.
  • Als Reaktion auf das Empfangen der Gruppenzuweisung können die zugewiesenen Wiedergabevorrichtungen dynamisch mit Gruppenattributen konfiguriert werden, die anderen Vorrichtungen (einschließlich der Rechenvorrichtung) ankündigen, dass die zugewiesenen Wiedergabevorrichtungen zur gleichen Gruppe gehören, wie im Folgenden näher beschrieben. Zum Beispiel kann die Softwareanwendung (z. B. die Home-Anwendung 332) auf der Rechenvorrichtung Gruppenattribute an jede Wiedergabevorrichtung senden, die den zugewiesenen Gruppen für jede Wiedergabevorrichtung entsprechen.
  • Wenn die Rechenvorrichtung die Gruppenattribute von den Wiedergabevorrichtungen in der Gruppe empfängt, kann die Rechenvorrichtung bestimmen, dass die Wiedergabevorrichtungen zu derselben Gruppe gehören und das Grafikelement 130 darstellen, das die Wiedergabegruppe darstellt. Beispielsweise kann das Grafikelement 130 Zustandsinformationen einschließen, die von der Wiedergabegruppe berichtet werden (z. B. der Name der Gruppe, das Medienelement, das von der Gruppe abgespielt wird, ein Bild 132, das die Gruppe repräsentiert, Kennungen für die Wiedergabevorrichtungen in der Gruppe usw.). Der Benutzer kann das Grafikelement 134 auswählen, um zu bewirken, dass die Rechenvorrichtung die GUI 200 von 2 darstellt, so dass der Benutzer den Zustand der Wiedergabegruppe betrachten und die Wiedergabegruppe steuern kann.
  • In einigen Implementierungen kann die GUI 100 ein Grafikelement 140 enthalten, das eine persistente Wiedergabevorrichtungsgruppe darstellt. So kann der Benutzer beispielsweise zwei oder mehr Wiedergabevorrichtungen zu einer Gruppe persistenter Wiedergabevorrichtungen konfigurieren (z. B. analog zu einer Stereokonfiguration oder Surround-Sound-Konfiguration). Wenn der Benutzer eine persistente Gruppe von Wiedergabevorrichtungen erzeugt, können die Wiedergabevorrichtungen durch die Rechenvorrichtung behandelt werden, als ob die persistente Gruppe von Wiedergabevorrichtungen eine einzelne Vorrichtung (z. B. eine einzelne Wiedergabevorrichtung) ist. Somit unterliegt die persistente Gruppe von Wiedergabevorrichtungen nicht derselben dynamischen Umordnung wie oben in Bezug auf die dynamische Gruppe von Wiedergabevorrichtungen beschrieben. Jedoch kann die persistente Gruppe ein Mitglied einer dynamischen Gruppe sein, so dass die persistente Gruppe als eine einzelne Wiedergabevorrichtung innerhalb der dynamischen Gruppe von Vorrichtungen behandelt wird. Da die persistente Wiedergabevorrichtungsgruppe als eine einzelne Wiedergabevorrichtung betrachtet wird, kann in einigen Implementierungen die persistente Wiedergabegruppe als eine einzelne Wiedergabevorrichtung in dem Grafikelement 102 (z. B. wie die Fernseh- und/oder Lautsprecher-Wiedergabevorrichtungen) dargestellt werden. Ähnlich wie bei dynamischen Wiedergabevorrichtungsgruppen, kann der Benutzer das Grafikelement 144 auswählen, um zu bewirken, dass die Rechenvorrichtung die GUI 200 von 2 darstellt, so dass der Benutzer den Zustand der persistenten Wiedergabegruppe betrachten und die Wiedergabegruppe steuern kann.
  • In einigen Implementierungen kann die Rechenvorrichtung Fernsteuerverbindungen (d. h. Steuerverbindungen) zu Wiedergabevorrichtungen herstellen, um Zustandsinformationen zu sammeln und die Wiedergabe an den Wiedergabevorrichtungen zu steuern. Zum Beispiel ist im Gegensatz zu der Masterverbindung, die von anderen Streaming-Vorrichtungen gekapert wird, wenn die anderen Streaming-Vorrichtungen Medien zu einer Wiedergabevorrichtung streamen möchten, die Steuerverbindung eine stille Verbindung, die die Masterverbindung nicht unterbricht. Die Steuerverbindung streamt keine Medien zu der/den Wiedergabevorrichtung(en). Stattdessen wird die Steuerverbindung verwendet, um Zustandsinformationen zu erhalten und die Wiedergabe der Medien zu steuern, die von der/den Wiedergabevorrichtung(en) abgespielt werden. Somit kann die Rechenvorrichtung sowohl Medien zu einem ersten Satz von Wiedergabevorrichtungen streamen als auch Statusinformationen empfangen und darstellen, die sich auf einen anderen Satz von Wiedergabevorrichtungen beziehen.
  • 2 veranschaulicht eine beispielhafte grafische Benutzerschnittstelle 200 zum Darstellen von Steuerelementen für eine Wiedergabegruppe. Beispielsweise kann die GUI 200 von der Rechenvorrichtung als Antwort darauf dargestellt werden, dass der Benutzer das Grafikelement 134 oder das Grafikelement 144 von 1 auswählt, wie oben beschrieben. Wenn die Rechenvorrichtung beispielsweise eine Auswahl des Grafikelements 134 oder des Grafikelements 144 empfängt, kann die Rechenvorrichtung das Grafikelement 102 in das Grafikelement 202 entsprechend dem Anzeigebereich 104 von 1 minimieren. Somit repräsentiert das Grafikelement 102 das Medienelement, das durch die Rechenvorrichtung gespielt oder gestreamt wird.
  • Wenn die Rechenvorrichtung eine Auswahl des Grafikelements 134 oder des Grafikelements 144 empfängt, kann die Rechenvorrichtung das entsprechende Grafikelement 130 oder 140, das eine dynamische Wiedergabegruppe oder eine persistente Wiedergabegruppe darstellt, in das Grafikelement 210 erweitern, um zusätzliche Informationen und/oder Steuerelemente für die ausgewählte Wiedergabegruppe darzustellen. Beispielsweise kann das Grafikelement 210 einen Informationsbereich 212 einschließen, der den Namen der Wiedergabegruppe und/oder des Medienelements identifiziert, das durch die Wiedergabegruppe abgespielt wird (oder kürzlich abgespielt wurde).
  • Das Grafikelement 210 kann den Steuerbereich 220 zum Darstellen von Steuerelementen für die Wiedergabegruppe einschließen. Beispielsweise können die in dem Steuerbereich 220 dargestellten Steuerelemente dynamisch bestimmt werden, und zwar auf der Grundlage der Fähigkeiten und/oder Merkmalen der Wiedergabevorrichtungen in der Wiedergabegruppe, des von der Wiedergabegruppe abgespielten Medienelements und/oder der Software-Anwendung, die das Medienelement bereitstellt, das von der Wiedergabegruppe abgespielt wird. Wenn die Wiedergabegruppe beispielsweise eine Vorrichtung mit Videofähigkeit einschließt, können Videosteuerelemente im Bereich 220 dargestellt werden. Wenn jedoch die Wiedergabegruppe keine Vorrichtung mit Videofähigkeit einschließt, können nur Audiosteuerelemente dargestellt werden. So kann beispielsweise der Steuerbereich 220 die Zeitachse 222 für die Medienwiedergabe und die Anzeige 224 (z. B. Wiedergabetaste) einschließen, um die aktuelle Wiedergabeposition des Medienelements in der Wiedergabezeitachse anzuzeigen. Der Steuerbereich 220 kann Wiedergabesteuerelemente 226 (z. B. Wiedergabe, Pause, Zurückspulen, Vorspulen usw.) zum Steuern der Wiedergabe des abgespielten Medienelements in der Wiedergabegruppe einschließen. Der Steuerbereich 220 kann die Lautstärkeregelung 228 einschließen. So kann der Benutzer beispielsweise die Wiedergabelautstärke an den Wiedergabevorrichtungen innerhalb der Wiedergabegruppe über die Touch-Eingabe (z.B. Antippen, Ziehen, Loslassen usw.) einstellen, indem er den Lautstärkehebel 230 wählt und ihn entlang des Lautstärkereglers 228 verschiebt.
  • Wenn der Benutzer mit den Wiedergabesteuerelementen interagiert, um Einstellungen für die verschiedenen Wiedergabesteuerelemente für die Wiedergabegruppe festzulegen, kann die Rechenvorrichtung die angegebenen Einstellungen an die Wiedergabegruppe senden. In einigen Implementierungen können die Wiedergabeeinstellungen an eine primäre Wiedergabevorrichtung in der Wiedergabegruppe gesendet werden, und die primäre Wiedergabevorrichtung kann die Wiedergabeeinstellungen zu anderen Wiedergabevorrichtungen innerhalb der Wiedergabegruppe weiterleiten. In einigen Implementierungen kann die Rechenvorrichtung die Wiedergabeeinstellungen direkt an jede Wiedergabevorrichtung in der Wiedergabegruppe senden.
  • In jedem Fall können die Wiedergabeeinstellungen an Wiedergabevorrichtungen gesendet werden unter Verwendung der nicht-kapernden (z. B. leisen) Steuerverbindung, wie oben beschrieben.
  • 3 ist ein Blockdiagramm eines beispielhaften Systems 300 zum Fernsteuern von Wiedergabevorrichtungen mit einer Fernsteuervorrichtung. Zum Beispiel kann die Fernsteuervorrichtung 310 der Rechenvorrichtung entsprechen, die grafische Benutzerschnittstellen 100 und 200 darstellt, wie oben beschrieben. 3 wird hier verwendet, um zu beschreiben, wie Statusdaten der Wiedergabevorrichtung und Steuerbefehle zwischen der Fernsteuervorrichtung 310 und der Wiedergabevorrichtung 320 verwaltet werden.
  • Wie überall in dieser Beschreibung verwendet, stellt eine Fernsteuervorrichtung (z. B. Fernsteuervorrichtung 310) eine Rechenvorrichtung (z. B. Smartphone, Tablet-Computer, Laptop-Computer usw.) dar, die mit der in den Figuren dargestellten Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 320) eine stille, nicht-kapernde Steuerverbindung (z. B. Steuerkanal, Steuerleitung usw.) herstellt. Jedoch kann die Fernsteuervorrichtung eine Steuerverbindung mit der Wiedergabevorrichtung 320 herstellen, um Zustandsinformationen für die Wiedergabevorrichtung 320 zu erhalten und eine Steuereingabe an die Wiedergabevorrichtung 320 bereitzustellen, während sie auch eine Streaming-Verbindung mit einer anderen Wiedergabevorrichtung (nicht gezeigt) aufrechterhält. Somit kann die Fernsteuervorrichtung 310 auch eine Streaming-Vorrichtung (d. h. eine Master-Vorrichtung) in Bezug auf eine andere Wiedergabevorrichtung sein, wie weiter unten beschrieben wird.
  • Wie in dieser Beschreibung verwendet, stellt die Wiedergabevorrichtung (z. B. die Wiedergabevorrichtung 320) eine Rechenvorrichtung (z. B. einen drahtlosen Lautsprecher, ein Fernsehgerät, eine Set-Top-Box usw.) dar, die konfiguriert ist, um einem oder mehreren Benutzern Audio und/oder Video zu präsentieren. Eine Wiedergabevorrichtung kann Medienströme durch Software-Anwendungen, die auf der Wiedergabevorrichtung installiert sind, erzeugen. Eine Wiedergabevorrichtung kann Medienströme von anderen Rechenvorrichtungen empfangen. Zum Beispiel können Wiedergabevorrichtungen ankündigen (z. B. unter Verwendung drahtloser Signale), dass sie in der Lage sind, Medienströme zu empfangen und zu präsentieren. Andere Rechenvorrichtungen (z. B. andere Wiedergabevorrichtungen, Streaming-Vorrichtungen usw.) können die Signale erkennen und sich mit der Wiedergabevorrichtung verbinden, um Medien zu der Wiedergabevorrichtung zu streamen, wie oben mit Bezug auf 1 beschrieben. Somit sind Wiedergabevorrichtungen durch andere Vorrichtungen erkennbar, die sich in unmittelbarer Nähe zu den Wiedergabevorrichtungen und/oder in dem gleichen lokalen Netzwerk wie die Wiedergabevorrichtungen befinden und/oder anderweitig erreichbar sind. Dies steht im Gegensatz zu anderen Rechenvorrichtungen (z. B. einzelnen Benutzervorrichtungen wie einem Smartphone oder einem Tablet-Computer), die möglicherweise nicht erkennbar sind, wie weiter unten beschrieben wird. Die verschiedenen Vorrichtungen (z. B. Fernsteuervorrichtung, Wiedergabevorrichtung, Streaming-Vorrichtung usw.) können unter Verwendung verschiedener Arten von Netzwerken kommunizieren, einschließlich Festnetzen, lokalen Netzwerken, Wi-Fi, Bluetooth und/oder verschiedenen Peer-to-Peer-Verbindungen (z. B. über Bluetooth, Wi-Fi, usw.).
  • In einigen Implementierungen enthält das System 300 die Fernsteuervorrichtung 310 und die Wiedergabevorrichtung 320. In dem Beispiel von 3 gibt die Wiedergabevorrichtung 320 den Medienstrom aus, der von der Wiedergabevorrichtung 320 abgespielt wird. Beispielsweise kann die Wiedergabevorrichtung 320 die Medienanwendung 322 enthalten. Die Medienanwendung 322 kann eine Musikanwendung, eine Videoanwendung oder irgendeine andere Art von Mediensoftwareanwendung sein. Die Medienanwendung 322 kann Medien zur Wiedergabe durch die Wiedergabevorrichtung 320 von einer lokalen Medienbibliothek auf der Wiedergabevorrichtung 320 erhalten. Die Medienanwendung 322 kann Medien zur Wiedergabe durch die Wiedergabevorrichtung 320 von einer entfernten Quelle, wie beispielsweise einem Internet-Mediendienst, erhalten. Die Medienanwendung 322 kann bewirken, dass die Wiedergabevorrichtung 320 Medien durch Senden des Medienstroms an den Medienserver 324 anzeigt. Beispielsweise kann der Medienserver 324 ein Softwaredienst sein, der die Wiedergabe von Medienelementen auf der Wiedergabevorrichtung 320 verwaltet. Somit kann der Medienserver 324 eine Schnittstelle zu den Medienwiedergabekomponenten (z. B. Lautsprechern, Anzeige usw.) der Wiedergabevorrichtung 320 bereitstellen.
  • In einigen Implementierungen kann die Wiedergabevorrichtung 320 das Media Remote 326 einschließen. Beispielsweise kann das Media Remote 326 ein Software-Server oder Dienst sein, der die Fernsteuerung des Medienservers 324 ermöglicht. Fernsteuervorrichtungen (z. B. Fernsteuervorrichtung 310) können Wiedergabestatusinformationen von dem Media Remote 326 anfordern und Medienwiedergabe-Steuereinstellungen an das Media Remote 326 senden. Das Media Remote 326 kann mit dem Medienserver 324 kommunizieren, um die Wiedergabestatusinformationen zu erhalten und/oder die Wiedergabesteuereinstellungen an den Medienserver 324 bereitzustellen.
  • In einigen Implementierungen kann die Wiedergabevorrichtung 320 den Medienempfänger 328 einschließen. Zum Beispiel stellt der Medienempfänger 320 die Netzwerk- und/oder Logikschnittstellen zum Empfangen von Medienströmen und Fernsteuerungsanforderungen von anderen Rechenvorrichtungen bereit. Der Medienempfänger 328 arbeitet in Verbindung mit dem Session-Manager 330, um Nachrichten zu und von angeschlossenen externen Vorrichtungen, wie beispielsweise der Fernsteuervorrichtung 310, weiterzuleiten. Zum Beispiel verwaltet der Session-Manager 330 die Netzwerk- und/oder logischen Kommunikationskanäle für Streaming-Medienverbindungen und Steuerverbindungen für die Wiedergabevorrichtung 320. Der Session-Manager 330 kann eine Datenbank von Kanälen oder Verbindungen unterhalten. Wenn beispielsweise eine Rechenvorrichtung sich mit dem Medienempfänger 320 verbindet, kann der Session-Manager 330 Informationen speichern, die die Art der Verbindung (z. B. Streaming/Masterverbindung oder Fernsteuerverbindung) und eine Kennung (z. B. Token) für die Rechenvorrichtung, die die Verbindung herstellt, identifizieren. Da die Wiedergabevorrichtung 320 nur eine Masterverbindung haben kann (z. B. eine ankommende Streaming-Verbindung), kann der Session-Manager 330 Informationen speichern, die eine einzelne Masterverbindung und möglicherweise mehrere Steuerverbindungen beschreiben. Diese Verbindungsdaten können von dem Medienempfänger 328 und/oder dem Session-Manager 330 verwendet werden, um Steuernachrichten und/oder Streaming-Medien zu den verschiedenen Vorrichtungen zu leiten, die mit der Wiedergabevorrichtung 320 verbunden sind.
  • In einigen Implementierungen kann das System 300 die Fernsteuervorrichtung 310 enthalten. Zum Beispiel kann das Media Remote 312 (z. B. ein Softwaredienst) auf der Fernsteuervorrichtung 310 konfiguriert werden, um die oben beschriebenen grafischen Benutzerschnittstellen 100 und/oder 200 auf einer Anzeige der Fernsteuervorrichtung 310 darzustellen. Um die Wiedergabe-Zustandsinformationen zu erhalten, die notwendig sind, um die GUIs 100 und 200 zu erzeugen, muss sich die Fernsteuervorrichtung 310 mit den in der Nähe befindlichen Wiedergabevorrichtungen einschließlich der Wiedergabevorrichtung 320 verbinden. Beispielsweise kann die Fernsteuervorrichtung 310 die durch die Wiedergabevorrichtung 320 gesendeten Ankündigungsnachrichten detektieren, die anzeigen, dass die Wiedergabevorrichtung 320 verfügbar ist, um eine Streaming-Wiedergabe zu empfangen. Basierend auf der empfangenen Ankündigung kann das Media Remote 312 Zustandsinformationen von der Wiedergabevorrichtung 320 anfordern. Zum Beispiel kann das Media Remote 312 eine Nachricht an den Medienserver 314 auf der Fernsteuervorrichtung 310 senden, die anzeigt, dass der Medienserver 314 Zustandsinformationen von der Wiedergabevorrichtung 320 anfordern sollte. Der Medienserver 314 kann eine Nachricht an den Medienempfänger 328 auf der Wiedergabevorrichtung 320 senden, die die Wiedergabestatusinformationen anfordert. Die Nachricht kann anzeigen, dass die Anforderung eine Steueranforderung ist (z. B. im Gegensatz zu einer Streaming-Anforderung), so dass die Anforderung den Streaming-Medien-Kommunikationskanal nicht kapert und bewirkt, dass die Wiedergabevorrichtung 320 die Wiedergabe der gegenwärtig abgespielten Medien stoppt. Die Nachricht kann einen Token oder eine Kennung einschließen, welche die anfordernde Fernsteuervorrichtung 310 identifiziert.
  • In einigen Implementierungen kann der Medienempfänger 328 bewirken, dass der Session-Manager 330 die Kommunikationskanalinformationen speichert, so dass nachfolgende Nachrichten zu der Fernsteuervorrichtung 310 geroutet werden können. Zum Beispiel können die Kommunikationskanalinformationen einen Kanaltyp (z. B. Steuerung, Streaming) und eine Kanalkennung (z. B. eine Kennung, die der anfordernden Vorrichtung zugeordnet ist) einschließen. Nachdem der Medienempfänger 328 die Wiedergabezustandsanforderung empfangen hat, kann der Medienempfänger 328 die Anforderung an das Media Remote 326 senden. Das Media Remote 326 kann Wiedergabestatusinformationen vom Medienserver 324 erhalten und die Wiedergabestatusinformationen an den Medienempfänger 328 senden. Zum Beispiel können die Wiedergabestatusinformationen beschreibende Informationen (z. B. Titel, Grafik, Künstler, Länge usw.) über das wiedergegebene Medienelement einschließen. Die Wiedergabestatusinformationen können eine aktuelle Position oder die Stelle innerhalb des Medienelements anzeigen, an der die Wiedergabevorrichtung 320 abspielt. Die Wiedergabestatusinformationen können Informationen einschließen, die die Fähigkeiten und/oder Merkmale der Medienanwendung 322 und/oder der Wiedergabevorrichtung 320 beschreiben, so dass das Media Remote 312 die geeigneten Benutzerschnittstellen-Steuerelemente erzeugen und darstellen kann. Der Medienempfänger 328 kann dann die Wiedergabestatusinformationen über den zuvor eingerichteten Steuerkommunikationskanal an den Medienserver 314 auf der Fernsteuervorrichtung 314 senden. Der Medienserver 314 kann die Wiedergabestatusinformationen an das Media Remote 312 senden. Das Media Remote 312 kann die GUI 100 und/oder GUI 200 unter Verwendung der von der Wiedergabevorrichtung 320 empfangenen Wiedergabestatusinformationen erzeugen.
  • In einigen Implementierungen kann nach dem Erzeugen der GUI 100 und/oder der GUI 200 das Media Remote 312 auf der Fernsteuervorrichtung 310 Wiedergabebefehle an die Wiedergabevorrichtung 310 senden. Beispielsweise kann der Benutzer der Fernsteuervorrichtung ein Wiedergabesteuerelement (z. B. Lautstärke, Vorspulen, Zurückspulen, Überspringen, Pause usw.) von einer der grafischen Benutzerschnittstellen auswählen, die von dem Media Remote 312 erzeugt wurden. Das Media Remote 312 kann die Auswahl des Steuerelements erkennen und einen entsprechenden Steuerbefehl an den Medienserver 314 senden. Der Medienserver 314 kann den Steuerbefehl an den Medienempfänger 328 senden, und der Medienempfänger kann den Steuerbefehl an das Media Remote 326 senden. Das Media Remote 326 kann dann den Medienserver 324 veranlassen, den angezeigten Mediensteuerbefehl auszuführen (z. B. Lautstärke, Wiedergabe, Pause, Vorspulen, usw.). Nachdem der Befehl ausgeführt wurde, kann das Media Remote 326 wie oben beschrieben Wiedergabestatusinformationen an das Media Remote 312 auf der Fernsteuervorrichtung 310 zurücksenden, so dass das Media Remote 312 seine grafischen Benutzerschnittstellen aktualisieren kann.
  • 4 ist ein Blockdiagramm eines beispielhaften Systems 400 zum Fernsteuern einer Wiedergabegruppe mit einer Fernsteuervorrichtung. Zum Beispiel kann das System 400 dem System 300 ähnlich sein. Im System 400 spielt die Wiedergabevorrichtung 320 jedoch nicht nur ein Medienelement ab (z.B. über einen lokalen Lautsprecher), sondern streamt das Medienelement auch an die Wiedergabevorrichtung 410 und die Wiedergabevorrichtung 420 zur synchronen Wiedergabe. Somit bilden die Wiedergabevorrichtung 320, die Wiedergabevorrichtung 410 und die Wiedergabevorrichtung 420 eine Gruppe (z. B. dynamisch oder persistent) von Wiedergabevorrichtungen. Die Gruppe kann je nach Konfiguration dynamisch oder persistent sein, wie weiter unten beschrieben wird. Die Wiedergabevorrichtungen 410 und/oder 420 können ähnlich wie die Wiedergabevorrichtung 320 konfiguriert sein. Die Wiedergabevorrichtungen 410 und/oder 420 können dieselben Merkmale aufweisen (z. B. alle drahtlosen Lautsprecher) oder können unterschiedliche Merkmale haben (z. B. Set-Top-Box und drahtlose Lautsprecher).
  • In einigen Implementierungen kann die Fernsteuervorrichtung 310 sich mit der Wiedergabevorrichtung 410 und/oder der Wiedergabevorrichtung 420 verbinden und Wiedergabestatusinformationen empfangen in einer ähnlichen Weise wie die Wiedergabevorrichtung 320. Während beispielsweise alle Komponenten der Wiedergabevorrichtung 320 nicht in der Wiedergabevorrichtung 410 und der Wiedergabevorrichtung 420 dargestellt werden, existieren diese Komponenten innerhalb dieser Wiedergabevorrichtungen. Somit kann die Fernsteuervorrichtung 310 einen stillen Steuerkanal zum Medienempfänger 412 auf der Wiedergabevorrichtung 410 und zum Medienempfänger 422 auf der Wiedergabevorrichtung 420 aufbauen und Wiedergabestatusinformationen unter Verwendung ähnlicher Mechanismen empfangen, wie oben für die Wiedergabevorrichtung 320 beschrieben. Da die Wiedergabevorrichtung 320 die Vorrichtung ist, die Medien zur Wiedergabevorrichtung 410 und Wiedergabevorrichtung 420 streamt, wird die Wiedergabevorrichtung 320 einen Streaming-Kommunikationskanal (z. B. einen Masterkanal) mit dem Medienempfänger 412 auf der Wiedergabevorrichtung 410 und dem Medienempfänger 422 auf der Wiedergabevorrichtung 420 aufbauen.
  • In einigen Implementierungen sendet die Fernsteuervorrichtung 310 nur Steuerbefehle an die Wiedergabevorrichtung 320 (z. B. die primäre Vorrichtung, Master-Vorrichtung, usw.). Obwohl beispielsweise die Fernsteuervorrichtung 310 zwar Netzwerkverbindungen mit allen drei Wiedergabevorrichtungen herstellt, sendet die Fernsteuervorrichtung nur Informationsanforderungen und Befehle an die primäre oder Master-Wiedergabevorrichtung (z. B. erkennbare Streaming-Vorrichtung), die die Wiedergabe des Medienelements steuert. Die Fernsteuervorrichtung 310 kann die primäre Wiedergabevorrichtung basierend auf Gruppenmitgliederattributen bestimmen, die von jeder Wiedergabevorrichtung an die Fernsteuervorrichtung 310 geliefert werden. Beispielsweise können die Gruppenmitgliederattribute von jeder Wiedergabevorrichtung an die Fernsteuervorrichtung 310 gesendet werden, wenn die Fernsteuervorrichtung 310 eine Netzwerkverbindung mit jeder Wiedergabevorrichtung herstellt.
  • Die Gruppenmitgliederattribute können eine Gruppenkennung einschließen. Die Gruppenkennung kann Wiedergabevorrichtungen durch die primäre Wiedergabevorrichtung zugeordnet werden. Beispielsweise kann jede Wiedergabevorrichtung 410, 420 und 320 anfangs jeweils als eine einzelne Gruppe betrachtet werden, wobei jede Wiedergabevorrichtung die primäre Vorrichtung in der Gruppe ist und jede Vorrichtung eine andere Gruppenkennung aufweist. Wenn der Benutzer die Wiedergabevorrichtung 320 anweist, Medien an die Wiedergabevorrichtung 410 und die Wiedergabevorrichtung 420 zu streamen, kann die Wiedergabevorrichtung 320 ihre Gruppenkennung auf die Wiedergabevorrichtungen 410 und 420 verschieben, so dass sie auch die gleiche Gruppenkennung aufweisen.
  • Die Gruppenmitgliederattribute können einen Gruppenleitermerker enthalten. Wenn beispielsweise die Wiedergabevorrichtung (z. B. die Wiedergabevorrichtung 320) der Gruppenleiter (z. B. primäre Wiedergabevorrichtung) ist, wird der Gruppenleitermerker auf True gesetzt. Wenn die Wiedergabevorrichtung (z. B. die Wiedergabevorrichtung 410) nicht der Gruppenleiter ist, wird der Gruppenleitermerker auf False gesetzt. Somit kann das Media Remote 312 auf der Fernsteuervorrichtung 310 die primäre Wiedergabevorrichtung auf der Grundlage der von den Wiedergabevorrichtungen empfangenen Gruppenleitermerkern schnell identifizieren.
  • Die Gruppenmitgliederattribute können einen Merker einschließen, der angibt, ob der Gruppenleiter erkennbar ist. Zum Beispiel sind einige Streaming-Vorrichtungen erkennbar (z. B. drahtlose Lautsprecher, Set-Top-Boxen, Fernseher usw.) und einige Streaming-Vorrichtungen sind nicht erkennbar (z. B. einzelne Benutzervorrichtungen, Smartphones, Tablet-Computer usw.). Das Gruppenleiter-Erkennbarmerker zeigt an, ob der Gruppenleiter (z. B. primäre Wiedergabevorrichtung, Streaming-Vorrichtung, usw.) direkt von der Fernsteuervorrichtung 310 erreicht werden kann. Wenn die Streaming-Vorrichtung nicht erkennbar ist, wird einer der unten beschriebenen Weiterleitungsmechanismen verwendet, um Nachrichten, Anforderungen oder Befehle an die nicht erkennbare Streaming-Vorrichtung weiterzugeben.
  • In einigen Implementierungen können die Gruppenmitgliederattribute einen Merker einschließen, der angibt, ob die Wiedergabevorrichtung das Weiterleiten von Nachrichten an nicht erkennbare Streaming-Vorrichtungen (z. B. Primär- oder Master-Vorrichtungen) unterstützt. Wenn dieser Merker auf True gesetzt ist, dann kann die Wiedergabevorrichtung verwendet werden, um Nachrichten von der Fernsteuervorrichtung 310 zu einer nicht erkennbaren Streaming-Vorrichtung weiterzuleiten, wie unten beschrieben. Zusätzliche Gruppenmitgliederattribute können unten beschrieben werden, wenn persistente Gruppen beschrieben werden.
  • In einigen Implementierungen kann das Media Remote 312 eine Gruppe von Wiedergabevorrichtungen als eine einzige Einheit auf der GUI 100 und/oder GUI 200 darstellen, wie oben beschrieben. Wenn zum Beispiel die Fernsteuervorrichtung 310 Gruppenmitgliederattribute von der Wiedergabevorrichtung 320, der Wiedergabevorrichtung 410 und der Wiedergabevorrichtung 420 empfängt, kann das Media Remote 312 bestimmen, dass alle drei Wiedergabevorrichtungen dieselbe Gruppenkennung aufweisen und daher zu derselben Wiedergabegruppe gehören. Anstatt also drei verschiedene Wiedergabevorrichtungen auf der GUI 100 und/oder GUI 200 darzustellen, stellt das Media Remote 312 ein einziges Grafikelement der Wiedergabegruppe (z. B. Grafikelement 130, Grafikelement 140) dar, um alle drei Vorrichtungen darzustellen.
  • Wenn der Benutzer eine Eingabe an einem Wiedergabesteuerelement auf der GUI 200 tätigt, um die Medienwiedergabe (z. B. Lautstärke, Wiedergabe, Pause, Überspringen usw.) der Wiedergabegruppe anzupassen, sendet das Media Remote 312 den Befehl zum Anpassen der Medienwiedergabe an die primäre Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 320), wie durch die Mitgliederattribute der Wiedergabegruppe angegeben. Nach dem Empfang des Befehls passt die primäre Wiedergabevorrichtung 320 die Einstellung der Medienwiedergabe für alle Mitglieder der Wiedergabegruppe an. Beispielsweise bewirkt die primäre Wiedergabevorrichtung 320, dass die sekundären Wiedergabevorrichtungen 410 und 420 die Wiedergabe gemäß dem Befehl anpassen, der von dem Media Remote 312 empfangen wird.
  • 3 und 4 beschreiben die Wiedergabe- und Fernsteuerungssarchitektur, bei der die primäre Wiedergabevorrichtung (z.B. Streaming-Vorrichtung, Master-Vorrichtung usw.) direkt mit der Fernsteuervorrichtung 310 erreichbar ist. Beispielsweise ist die Wiedergabevorrichtung 320 erreichbar, weil sie ihr Vorhandensein und ihre Fähigkeit zur Annahme von Steuer- und/oder Streaming-Verbindungen ankündigt. Die untenstehende 5 beschreibt die Wiedergabe- und Fernsteuerungssarchitektur, bei der die primäre Wiedergabevorrichtung (z.B. Streaming-Vorrichtung, Master-Vorrichtung usw.) nicht direkt mit der Fernsteuervorrichtung 310 erreichbar ist. In dieser Situation verlässt sich die Fernsteuervorrichtung 310 auf eine Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 320), um Anforderungen und Befehle über die von der primären Wiedergabevorrichtung hergestellte Streaming-Verbindung an die primäre Wiedergabevorrichtung weiterzuleiten.
  • 5 ist ein Blockdiagramm eines beispielhaften Systems 500 zum Fernsteuern einer nicht erkennbaren Wiedergabevorrichtung mit einer Fernsteuervorrichtung. Wie oben beschrieben, kann eine nicht erkennbare Wiedergabevorrichtung eine Rechenvorrichtung sein, die ihre Existenz nicht ankündigt und bei der eine Verbindung mit der nicht erkennbaren Vorrichtung nicht durch eine andere Vorrichtung initiiert werden kann.
  • In einigen Implementierungen kann das System 500 die Fernsteuervorrichtung 310, die Wiedergabevorrichtung 320 und/oder die Streaming-Vorrichtung 510 einschließen. Beispielsweise kann die Streaming-Vorrichtung 510 eine nicht erkennbare Vorrichtung sein. Die Streaming-Vorrichtung 510 kann eine Rechenvorrichtung mit Merkmalen ähnlich der Fernsteuervorrichtung 310 sein. Beispielsweise kann die Streaming-Vorrichtung 510 sowohl eine Streaming-Vorrichtung sein, die Medien an die Wiedergabevorrichtung 320 sendet, als auch eine Fernsteuervorrichtung, die mit anderen Wiedergabevorrichtungen (nicht gezeigt) verbunden ist.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 510 die Medienanwendung 512 einschließen. Zum Beispiel kann die Medienanwendung 512 eine Anwendung sein, die konfiguriert ist, um Medien von einer lokalen Medienbibliothek auf der Streaming-Vorrichtung 510 oder von einer Netzwerk-Ressource, wie einem Netzwerk-Mediendienst, abzuspielen. Der Benutzer der Streaming-Vorrichtung 510 kann eine Eingabe an die Medienanwendung 512 bereitstellen, um die Medienanwendung 512 zu veranlassen, Medien zur Wiedergabevorrichtung 320 zu streamen. Die Medienanwendung 512 kann eine Anforderung an den Medienserver 514 senden, um eine Streaming-Verbindung (z. B. eine Masterverbindung) mit der Wiedergabevorrichtung 320 aufzubauen. Der Medienserver 514 kann eine Streaming-Verbindung herstellen, indem er eine Anforderung sendet, eine Streaming-Verbindung zum Medienempfänger 328 auf der Wiedergabevorrichtung 320 aufzubauen. Wenn eine weitere Streaming-Vorrichtung bereits Medien an die Wiedergabevorrichtung 320 streamt, kann der Medienempfänger 328 die bestehende Streaming-Verbindung beenden und eine Streaming-Verbindung mit der Streaming-Vorrichtung 510 herstellen. Somit hat die Streaming-Vorrichtung 510 die Streaming-Verbindung zur Wiedergabevorrichtung 320 effektiv gekapert. Nach dem Aufbau der Streaming-Verbindung (angezeigt durch fette Linie mit Pfeilen) kann der Session-Manager 330 Verbindungsinformationen speichern, die den Typ der Verbindung (z. B. Streaming oder Master) und eine Kennung für die Verbindung anzeigt (z. B. eine Vorrichtungskennung für die Streaming-Vorrichtung 510).
  • Nach Aufbau der Streaming-Verbindung zum Medienempfänger 328 kann die Medienanwendung 512 Mediendaten zum Medienserver 514 senden und der Medienserver 514 die Mediendaten (z. B. Lied, Film, TV-Show, Podcast, usw.) zum Medienempfänger 328 streamen. Der Medienempfänger 328 kann die gestreamten Mediendaten zum Medienserver 324 senden, und der Medienserver 324 kann bewirken, dass die Mediendaten durch die Wiedergabevorrichtung 320 (z. B. durch Lautsprecher, Anzeige usw.) dargestellt werden. In einigen Implementierungen kann die Wiedergabevorrichtung 320, wenn die Wiedergabevorrichtung 320 Teil einer Wiedergabegruppe ist, die gestreamten Medien zu den anderen Wiedergabevorrichtungen in der Gruppe zur Wiedergabe senden. In einigen Implementierungen kann, wenn die Wiedergabevorrichtung 320 Teil einer Wiedergabegruppe ist, die Streaming-Vorrichtung 510 die gestreamten Medien direkt zu den anderen Wiedergabevorrichtungen in der Gruppe zur Wiedergabe senden. Die Streaming-Vorrichtung 510 kann die Wiedergabevorrichtungen, die Mitglieder derselben Gruppe sind, auf der Basis der oben beschriebenen Gruppenattributinformationen bestimmen.
  • In einigen Implementierungen leitet die Wiedergabevorrichtung 320 Nachrichten von der Fernsteuervorrichtung 310 an die Streaming-Vorrichtung 510 weiter. Da, wie oben beschrieben, die Streaming-Vorrichtung 510 nicht erkennbar ist, kann die Fernsteuervorrichtung 310 keine Steuernachrichten direkt an die Streaming-Vorrichtung 510 senden. Um Wiedergabestatusinformationen zu erhalten und Wiedergabebefehle an die Streaming-Vorrichtung 510 zu senden, kann die Fernsteuervorrichtung 310 Anforderungen und Befehle für die Master-Vorrichtung (z. B. Streaming-Vorrichtung 510) an die Wiedergabevorrichtung 320 senden und die Wiedergabevorrichtung 320 kann die Anforderungen und Befehle an die Streaming-Vorrichtung 510 weiterleiten.
  • Wie oben beschrieben, kann das Media Remote 312 Gruppenattributinformationen von der Wiedergabevorrichtung 320 empfangen. Wenn die Gruppenattribute anzeigen, dass der Gruppenleiter nicht erkennbar ist und dass die Wiedergabevorrichtung 320 das Weiterleiten von Anforderungen an den Gruppenleiter unterstützt (z. B. Streaming-Vorrichtung 510), dann kann das Media Remote 312 bestimmen, dass Fernsteueranforderungen und Befehle über die Wiedergabevorrichtung 320 zu der Streaming-Vorrichtung 510 geleitet werden sollen.
  • In einigen Implementierungen kann das Media Remote 312 auf der Fernsteuervorrichtung 310 eine Anforderung an den Medienserver 314 senden, um Wiedergabestatusinformationen für die Wiedergabegruppe zu erhalten, die der Wiedergabevorrichtung 320 entspricht. Der Medienempfänger 328 kann bestimmen, dass, da die Wiedergabevorrichtung 320 nicht der Gruppenleiter (z. B. primäre Vorrichtung) ist, die Anforderung an die Streaming-Vorrichtung 510 weitergeleitet werden soll. Der Medienempfänger 328 kann die Anforderung der Wiedergabestatusinformationen an den Medienserver 514 an der Streaming-Vorrichtung 510 zusammen mit einer Kennung für den Steuerkanal senden, der für die Fernsteuervorrichtung 310 eingerichtet ist. Der Medienserver 514 kann die Wiedergabestatusanforderung an das Media Remote 516 auf der Streaming-Vorrichtung 510 senden. Das Media Remote 516 kann die Wiedergabestatusinformationen bestimmen und die Wiedergabestatusinformationen an den Medienempfänger 328 auf der Wiedergabevorrichtung 320 zusammen mit der Kennung für den Steuerkanal senden, der der Fernsteuervorrichtung 310 zugeordnet ist. Der Medienempfänger 328 kann die Kennung verwenden, um zu bestimmen, welcher Steuerkanal von dem Session-Manager 330 verwaltet wird, um die Wiedergabestatusinformationen an die Fernsteuervorrichtung 310 zu senden. Nach dem Bestimmen des richtigen Steuerkanals kann der Medienempfänger 328 die Wiedergabestatusinformationen an den Medienserver 314 auf der Fernsteuervorrichtung 310 senden. Der Medienserver 314 kann die Wiedergabestatusinformationen an das Media Remote 312 auf der Fernsteuervorrichtung 310 senden, so dass das Media Remote 312 die GUI 100 und/oder GUI 200 mit den von der Streaming-Vorrichtung 510 bereitgestellten Zustandsinformationen erzeugen und darstellen kann.
  • In einigen Implementierungen können Medienwiedergabesteuerbefehle von der Fernsteuervorrichtung 310 über die Wiedergabevorrichtung 320 in ähnlicher Weise wie die Anforderung der Wiedergabestatusinformationen an die Streaming-Vorrichtung 510 geleitet werden. Wenn das Media Remote 516 auf der Streaming-Vorrichtung 510 den Wiedergabesteuerbefehl empfängt, kann das Media Remote 516 den Befehl lokal ausführen (z. B. auf der Streaming-Vorrichtung 510) und bewirken, dass alle Wiedergabevorrichtungen (z. B. Wiedergabevorrichtung 320), zu denen gestreamt wird, denselben Befehl ausführen. In einigen Situationen können jedoch Steuerbefehle für die Medienwiedergabe, die von der Wiedergabevorrichtung 320 weitergeleitet werden, abgefangen und an der Wiedergabevorrichtung 320 ausgeführt werden. Anstatt beispielsweise darauf zu warten, einen „Pause“-Befehl von der Streaming-Vorrichtung 510 zu empfangen, der über die Wiedergabevorrichtung 320 geleitet wurde, kann die Wiedergabevorrichtung 320 den Pause-Befehl abfangen, während er von der Fernsteuervorrichtung 310 über die Wiedergabevorrichtung 320 zur Streaming-Vorrichtung 510 geleitet wird, und den Pause-Befehl ausführen. Somit kann die Wiedergabevorrichtung 320 die Wiedergabe der gegenwärtig wiedergegebenen Medien schneller stoppen, als wenn die Wiedergabevorrichtung 320 gewartet hätte, um den Pause-Befehl von der Streaming-Vorrichtung 510 zu empfangen.
  • 6 ist ein Blockdiagramm eines beispielhaften Systems 600 zum Verwalten dynamischer Wiedergabevorrichtungsgruppen. In einigen Implementierungen kann das System 600 ähnlich den oben beschriebenen Systemen 300, 400 und 500 konfiguriert werden. Zum Beispiel kann das System 600 die Fernsteuervorrichtung 310 und die Wiedergabevorrichtungen 610, 620 und/oder 630 einschließen. Die Wiedergabevorrichtungen 610, 620 und/oder 630 können ähnlich wie die oben beschriebene Wiedergabevorrichtung 320 konfiguriert werden. Beispielsweise können die Wiedergabevorrichtungen 610, 620 und/oder 630 ihre Verfügbarkeit unter Verwendung verdrahteter oder drahtloser Netzwerkübertragungen ankündigen. Die Wiedergabevorrichtungen 610, 620 und/oder 630 können die Dienste, die sie bereitstellen, wie beispielsweise den Streaming-Medienempfänger und Nachrichten-Relay-Dienste, die oben beschrieben sind, ankündigen.
  • Nach dem Empfang der Ankündigungsnachrichten kann die Fernsteuervorrichtung 310 Netzwerkverbindungen (z. B. verdrahtet, drahtlos, Peer-to-Peer, Wi-Fi usw.) mit jeder der Wiedergabevorrichtungen 610, 620 und/oder 630 aufbauen. Diese Netzwerkverbindungen können beibehalten werden (z. B. persistent), auch wenn sich die Art der logischen Verbindung (z. B. Master, Steuerung, Streaming, usw.) und/oder die Datenweiterleitung zu oder durch diese Wiedergabevorrichtungen ändern kann. Das Aufrechterhalten einer dauerhaften Netzwerkverbindung mit jeder dieser Wiedergabevorrichtungen ermöglicht es der Fernsteuervorrichtung 310, sich an die sich dynamisch ändernde Topologie des Netzwerks (z. B. Wechseln der Wiedergabegruppen) anzupassen, ohne den Aufwand (z. B. in Zeit und Verarbeitung) der Trennung und der Wiederherstellung der Netzwerkverbindungen aufbringen zu müssen, wie es erforderlich wäre, wenn die Fernsteuervorrichtung 310 nur eine Netzwerkverbindung mit der primären Wiedergabevorrichtung in einer Gruppe herstellen würde.
  • In einigen Implementierungen kann die Fernsteuervorrichtung 310 den Wiedergabevorrichtungspool 602 speichern und warten. Beispielsweise kann der Vorrichtungspool 310 eine Datenbank sein, die Informationen speichert, die jede Netzwerkverbindung mit jeder Wiedergabevorrichtung beschreiben oder identifizieren (z. B. Wiedergabevorrichtungen 610, 620, 630). Der Vorrichtungspool 310 kann alle Wiedergabegruppenattribute (z. B. dynamische und/oder persistente Gruppenattribute) speichern, die von jeder Wiedergabevorrichtung berichtet werden. Wie vorstehend kurz beschrieben, kann beispielsweise jede Wiedergabevorrichtung ihre Wiedergabegruppenattribute an die Fernsteuervorrichtung 310 berichten (z. B. senden, ankündigen usw.), wenn sie eine Netzwerkverbindung mit der Fernsteuervorrichtung 310 herstellt und/oder wenn sich diese Wiedergabegruppenattribute ändern.
  • In einigen Implementierungen können die Wiedergabegruppenattribute eine Gruppenkennung einschließen, die die dynamische Wiedergabegruppe oder dynamischen Wiedergabegruppen identifiziert, zu denen die Wiedergabevorrichtung gehört. Die Wiedergabegruppenattribute können einen Gruppenleitermerker einschließen, der, wenn er auf True gesetzt wird, anzeigt, dass die berichtende Wiedergabevorrichtung der Leiter oder die primäre Vorrichtung der dynamischen Wiedergabegruppe ist. Die Wiedergabegruppenattribute können einen Merker (z. B. True, False) einschließen, der angibt, ob der dynamische Wiedergabegruppenleiter erkennbar ist, wie oben beschrieben. Die Wiedergabegruppenattribute können einen Merker einschließen, der, wenn er auf True gesetzt ist, anzeigt, dass die berichtende Wiedergabevorrichtung das Weiterleiten von Nachrichten zu/von einem nicht erkennbaren Gruppenleiter (z. B. Master-Vorrichtung, Streaming-Vorrichtung, einzelne Benutzervorrichtung usw.) unterstützt.
  • In einigen Implementierungen können die Wiedergabegruppenattribute persistente Gruppenattribute einschließen. Zum Beispiel können die persistenten Gruppenattribute eine persistente Gruppenkennung einschließen, die verwendet werden kann, um Wiedergabevorrichtungen zu identifizieren, die zu derselben persistenten Gruppe gehören (z. B. Stereopaar von Wiedergabevorrichtungen, Surround-Sound-Gruppe von Wiedergabevorrichtungen). In einigen Implementierungen können Wiedergabevorrichtungen, die die gleiche persistente Gruppenkennung aufweisen, behandelt werden, als ob sie eine einzelne Vorrichtung wären, wie oben beschrieben. Die Attribute der persistenten Gruppe können einen Gruppenleitermerker der persistenten Gruppe einschließen, der anzeigt, ob die berichtende Wiedergabevorrichtung der Leiter oder die primäre Vorrichtung innerhalb der persistenten Gruppe ist. Die Attribute der persistenten Gruppe können einen Erreichbarmerker für Gruppenmitglieder einschließen, der anzeigt, ob alle anderen Mitglieder der persistenten Gruppe erreichbar sind oder nicht. In dem Fall eines Stereo-Paars von Wiedergabevorrichtungen (z. B. einer persistenten Gruppe von zwei), wenn der Erreichbarmerker auf False gesetzt ist, zeigt dies an, dass die andere Wiedergabevorrichtung in der persistenten Gruppe nicht erreichbar ist. Im Falle einer Surround-Sound-Lautsprechergruppe (z. B. persistente Gruppe von mehr als zwei Wiedergabevorrichtungen), wenn der Erreichbarmerker des Gruppenmitglieds auf False gesetzt ist, bedeutet dies, dass mindestens eine andere Wiedergabevorrichtung in der persistenten Gruppe nicht erreichbar ist. Dieser Erreichbarmerker kann einen Einfluss auf Streaming-Medien und/oder Steuernachrichten-Routing haben, wie weiter unten beschrieben wird.
  • Nachdem Gruppenattribute von jeder angeschlossenen Wiedergabevorrichtung (z. B. Wiedergabevorrichtungen 610, 620, 630, usw.) gesammelt wurden, kann das Media Remote 312 auf der Fernsteuervorrichtung 310 bestimmen, wie die berichtenden Wiedergabevorrichtungen basierend auf den im Vorrichtungspool 602 gespeicherten Wiedergabegruppenattributen gruppiert werden sollen. So kann beispielsweise die Wiedergabevorrichtung 610 unter anderem einen Wert der Wiedergabegruppenkennung von Eins (1), einen Gruppenleitermerkerwert von True und einen Gruppenleiter-Erkennbarmerker von True berichten. Die Wiedergabevorrichtung 620 kann unter anderem einen Wert der Wiedergabegruppenkennung von Eins (1), einen Gruppenleitermerkerwert von False und einen Gruppenleiter-Erkennbarmerker von True berichten. Die Wiedergabevorrichtung 630 kann unter anderem einen Wert der Wiedergabegruppenkennung von Zwei (2), einen Gruppenleitermerkerwert von True und einen Gruppenleiter-Erkennbarmerker von True berichten.
  • Basierend auf diesen berichteten Gruppenattributen kann das Media Remote 312 bestimmen, dass die Wiedergabevorrichtung 610 und die Wiedergabevorrichtung 620 Mitglieder derselben Wiedergabegruppe 640 sind, weil sie die gleiche Wiedergabegruppenkennung (z. B. Wiedergabegruppenkennung = 1) berichtet haben. Das Media Remote 312 kann auch bestimmen, dass die Wiedergabevorrichtung 610 der Gruppenleiter ist, basierend auf der Tatsache, dass die Wiedergabevorrichtung 610 einen Wiedergabegruppenleitermerkerwert von True berichtet hat. Somit kann ein logischer Steuerkanal zwischen der Wiedergabevorrichtung 610 und der Fernsteuervorrichtung 310 aufgebaut werden, so dass Wiedergabestatus- und Wiedergabesteueranforderungen für die Wiedergabegruppe 640 an die Wiedergabevorrichtung 610 gerichtet werden können, da die Wiedergabevorrichtung 610 der Leiter oder die primäre Vorrichtung in der Gruppe 640 ist. Das Media Remote 312 kann auch bestimmen, dass Wiedergabestatus- und Steueranforderungen direkt an die Wiedergabevorrichtung 610 weitergeleitet werden können, z. B. anstatt sie durch eine andere Vorrichtung weiterzuleiten oder weiterzugeben, da der von der Wiedergabevorrichtung 610 berichtete Erkennbarmerker für den Wiedergabegruppenleiter den Wert True hat.
  • Ebenso kann das Media Remote 312 bestimmen, dass sich die Wiedergabevorrichtung 630 selbst in einer Gruppe 650 befindet, da die Wiedergabevorrichtung 630 die einzige Wiedergabevorrichtung ist, die eine Wiedergabegruppenkennung mit dem Wert Zwei (2) meldet. Das Media Remote 312 kann bestimmen, dass die Wiedergabevorrichtung 630 der Gruppenleiter der Wiedergabegruppe 650 ist, basierend auf der Tatsache, dass die Wiedergabevorrichtung 610 einen Wiedergabegruppenleitermerkerwert von True berichtet hat. Somit kann ein logischer Steuerkanal zwischen der Wiedergabevorrichtung 630 und der Fernsteuervorrichtung 310 aufgebaut werden, so dass Wiedergabestatus- und Wiedergabesteueranforderungen für die Wiedergabegruppe 650 an die Wiedergabevorrichtung 630 gerichtet werden können, da die Wiedergabevorrichtung 630 der Leiter oder die primäre Vorrichtung in der Gruppe 650 ist. Das Media Remote 312 kann auch bestimmen, dass Wiedergabestatus- und Steueranforderungen direkt an die Wiedergabevorrichtung 630 weitergeleitet werden können, z. B. anstatt sie durch eine andere Vorrichtung weiterzuleiten oder weiterzugeben, da der von der Wiedergabevorrichtung 610 berichtete Erkennbarmerker für den Wiedergabegruppenleiter den Wert True hat.
  • Wie oben beschrieben, kann eine einzelne Wiedergabevorrichtung zu mehreren dynamischen Wiedergabegruppen gehören. Beispielsweise können die Wiedergabevorrichtung 610 und die Wiedergabevorrichtung 620 Gruppenattribute berichten, die angeben, dass sie zu derselben dynamischen Wiedergabegruppe 640 gehören. Die Wiedergabevorrichtung 620 und die Wiedergabevorrichtung 630 können Gruppenattribute berichten, die angeben, dass sie zu derselben dynamischen Wiedergabegruppe gehören, die von der Gruppe 640 verschieden ist. Somit kann die Wiedergabevorrichtung 620 zu zwei unterschiedlichen dynamischen Wiedergabegruppen gehören und entsprechende Gruppenattribute berichten.
  • Nachdem das Media Remote 312 die Wiedergabegruppen basierend auf den berichteten Wiedergabegruppenattributen bestimmt hat, kann das Media Remote 312 die GUI 100 und/oder GUI 200 basierend auf den bestimmten Wiedergabegruppen erzeugen. Der Benutzer der Fernsteuervorrichtung 310 kann dann die Wiedergabestatusinformationen in Bezug auf die Wiedergabegruppen anzeigen und/oder die Wiedergabe von Medien steuern, die von den Wiedergabegruppen abgespielt werden, indem er die oben in Bezug auf 1 und 2 beschriebenen Funktionen der Benutzerschnittstelle verwendet.
  • In einigen Implementierungen können Wiedergabegruppen dynamisch umorganisiert werden. Zum Beispiel kann ein Benutzer eine Eingabe an die Fernsteuervorrichtung 310, eine Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 610, 620 oder 630) und/oder eine Streaming-Vorrichtung 510 bereitstellen, um Wiedergabevorrichtungen in neue oder verschiedene Gruppen zu kombinieren oder aufzuteilen. Zum Beispiel kann der Benutzer eine Eingabe an die Wiedergabevorrichtung 630 bereitstellen, die anzeigt, dass die Wiedergabevorrichtung 630 Medien zur Wiedergabegruppe 640 (oder individuellen Wiedergabevorrichtungen 610 und 620) streamen sollte. Als Reaktion auf diese Eingabe kann die Wiedergabevorrichtung 630 ihre Wiedergabegruppenkennung und den Gruppenleiter-Erkennbarmerker an die Wiedergabevorrichtungen 610 und 620 verschieben. Die Wiedergabevorrichtungen 610 und 620 können ihre Wiedergabegruppenkennungen ändern, um mit der Gruppenkennung der Wiedergabevorrichtung 630 übereinzustimmen. Die Wiedergabevorrichtungen 610 und 620 können ihren Wiedergabegruppenleiter-Erkennbarmerker ändern, um mit dem Merker übereinzustimmen, der von der Wiedergabevorrichtung 630 geliefert wird. Die Wiedergabevorrichtung 610, zuvor der Gruppenleiter der Wiedergabegruppe 640, kann ihren Wiedergabegruppenleitermerker auf False ändern, um anzuzeigen, dass sie nicht mehr der Gruppenleiter ist.
  • Nach dem Ändern dieser Wiedergabegruppenattribute können die Wiedergabevorrichtungen 610, 620 und/oder 630 die Wiedergabeattribute an die Fernsteuervorrichtung 312 melden und die Fernsteuervorrichtung 310 kann die Wiedergabegruppenattribute wie oben beschrieben im Vorrichtungspool 602 speichern. Nachdem die aktualisierten Wiedergabegruppenattribute von den Wiedergabevorrichtungen 610, 620 und/oder 630 auf der Fernsteuervorrichtung 310 empfangen wurden, kann das Media Remote 312 basierend auf den gemeldeten Wiedergabegruppenattributen bestimmen, dass die Wiedergabevorrichtungen 610, 620 und/oder 630 nun zur gleichen Wiedergabegruppe (z. B. Wiedergabegruppe 650) gehören und dass die Wiedergabevorrichtung 630 die primäre Wiedergabevorrichtung in der Wiedergabegruppe ist. Das Media Remote 312 kann dann die GUI 100 und/oder GUI 200 neu konfigurieren, um die neue Wiedergabegruppentopologie darzustellen und Informationen über den Wiedergabestatus und/oder Wiedergabebefehle für die Wiedergabegruppe 650 an die primäre Wiedergabevorrichtung, Wiedergabevorrichtung 630, zu senden. So können Wiedergabegruppen dynamisch konfiguriert und rekonfiguriert werden und das Media Remote kann dynamisch die GUIs konfigurieren und rekonfigurieren, die zur Fernsteuerung der Wiedergabegruppen erforderlich sind.
  • In einigen Implementierungen kann die Fernsteuervorrichtung 310 eine Streaming-Vorrichtung ähnlich der oben beschriebenen Streaming-Vorrichtung 510 sein. Der Benutzer der Fernsteuervorrichtung 310 kann eine Eingabe an die Fernsteuervorrichtung 310 bereitstellen, um Medien zur Wiedergabegruppe 650 (nun einschließlich der Wiedergabevorrichtungen 610, 620, und 630) zu streamen. In einigen Implementierungen kann die Fernsteuervorrichtung 310 Medien nur zu der primären Wiedergabevorrichtung in der Wiedergabegruppe 650 (z. B. Wiedergabevorrichtung 630) streamen, und die primäre Wiedergabevorrichtung kann die empfangenen Medien zu anderen Wiedergabevorrichtungen in der Gruppe streamen. In einigen Implementierungen kann die Fernsteuervorrichtung 310 Medien direkt zu jeder Wiedergabevorrichtung in der Wiedergabegruppe 650 streamen und die Verzögerungen und Verbindungsprobleme vermeiden, die mit der Weiterleitung des Medienstroms von der primären Wiedergabevorrichtung zu den anderen Wiedergabevorrichtungen in der Wiedergabegruppe verbunden sind.
  • 7 ist ein Blockdiagramm eines beispielhaften Systems 700 zum Verwalten persistenter Wiedergabegruppen. Beispielsweise kann das System 700 dem oben beschriebenen System 600 entsprechen. Das System 700 kann die Fernsteuervorrichtung 310 und die Wiedergabevorrichtungen 710, 720 und/oder 730 enthalten. Wie oben beschrieben, kann die Fernsteuervorrichtung 310 eine Netzwerkverbindung mit jeder Wiedergabevorrichtung 710, 720 und 730 herstellen. Jede Wiedergabevorrichtung kann ihre Wiedergabegruppenattribute, einschließlich der persistenten Gruppenattribute, an die Fernsteuervorrichtung 310 berichten. Die Fernsteuervorrichtung 310 kann die Wiedergabegruppenattribute, Netzverbindungskennungen, Steuerkanalkennungen und/oder Streaming-Kanalkennungen in dem Vorrichtungspool 602 speichern.
  • In einigen Implementierungen können die Wiedergabegruppenattribute, die durch die Wiedergabevorrichtungen 710, 720 und/oder 730 berichtet werden, persistente Gruppenattribute einschließen. Zum Beispiel kann ein Benutzer zwei oder mehr Vorrichtungen als eine persistente Gruppe konfigurieren. Zum Beispiel kann der Benutzer eine persistente Gruppe so konfigurieren, dass sie als Stereopaar von Smart-Lautsprechern arbeitet. Der Benutzer kann eine persistente Gruppe so konfigurieren, dass sie als Surround-Soundsystem (z. B. 5.1 Surround-Sound) arbeitet.
  • In einigen Implementierungen können die persistenten Gruppenattribute eine persistente Gruppenkennung einschließen. Ähnlich wie bei dynamischen Wiedergabegruppen können Wiedergabevorrichtungen, die Mitglied einer persistenten Wiedergabegruppe sind, die gleiche persistente Gruppenkennung zugewiesen werden. Beispielsweise können anfänglich einzelne Wiedergabevorrichtungen jeweils eine eindeutige persistente Gruppenkennung aufweisen. Wenn Wiedergabevorrichtungen zu einer persistenten Wiedergabegruppe kombiniert werden, kann die Wiedergabegruppenkennung einer der Wiedergabevorrichtungen (z. B. die Wiedergabevorrichtung, mit der der Benutzer interagiert, um die persistente Wiedergabegruppe zu erstellen) auf die anderen Wiedergabevorrichtungen in der persistenten Wiedergabegruppe verschoben werden, so dass alle Wiedergabevorrichtungen in der persistenten Wiedergabegruppe die gleiche persistente Gruppenkennung aufweisen. Wenn ein Benutzer eine Eingabe in Wiedergabevorrichtung 710 mit einer persistenten Gruppenkennung von 10 bereitstellt, um eine persistente Wiedergabegruppe mit Wiedergabevorrichtung 720 zu erstellen, kann die Wiedergabevorrichtung 710 die persistente Gruppenkennung 10 an die Wiedergabevorrichtung 720 senden und die Wiedergabevorrichtung 720 kann ihre persistente Gruppenkennung auf 10 ändern. Somit können die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 als Stereopaar (z. B. Lautsprecher) konfiguriert werden und ihnen kann beiden eine persistente Gruppenkennung von 10 zugewiesen werden. Wenn das Media Remote 312 die Daten im Vorrichtungspool 602 analysiert, kann das Media Remote 312 bestimmen, dass die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 die gleiche persistente Gruppenkennung aufweisen und bestimmen, dass die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 die persistente Gruppe 740 bilden. Das Media Remote 312 kann dann die persistente Gruppe 740 auf der GUI 100 und/oder GUI 200 darstellen, als ob die persistente Gruppe 740 eine einzige Vorrichtung wäre.
  • In einigen Implementierungen können die persistenten Gruppenattribute einen Merker einschließen, der angibt, ob die berichtende Wiedergabevorrichtung der Gruppenleiter der persistenten Gruppe ist. Das Media Remote 312 kann den Leitermerker verwenden, um zu bestimmen, zu welcher Wiedergabevorrichtung in einer persistenten Gruppe Steueranforderungen (z. B. Informationsanforderungen, Steuerbefehle usw.) gesendet werden sollen. Beispielsweise werden, obwohl die Fernsteuervorrichtung 310 Netzwerkverbindungen zu jeder Wiedergabevorrichtung aufrechterhält, die Informationsanforderungen und/oder Befehle des Media Remote an den Leiter (z. B. primäre Vorrichtung, Master-Vorrichtung usw.) in jeder persistenten Gruppe geleitet.
  • In einigen Implementierungen können die persistenten Gruppenattribute einen Erreichbarmerker eines Gruppenmitglieds einschließen, der anzeigt, ob die anderen Wiedergabevorrichtungen in einer persistenten Gruppe durch die berichtende Wiedergabevorrichtung erreichbar sind. Beispielsweise können Mitglieder einer persistenten Gruppe die Verfügbarkeit anderer Mitglieder der persistenten Gruppe überwachen. Beispielsweise kann die Wiedergabevorrichtung 710 eine Steuerverbindung mit der Wiedergabevorrichtung 720 herstellen. Wenn die Wiedergabevorrichtung 720 nicht angeschlossen, verschoben oder anderweitig nicht verfügbar ist, bestimmt die Wiedergabevorrichtung 710, dass die Wiedergabevorrichtung 720 nicht erreichbar ist, und setzt den Erreichbarmerker des Gruppenmitglieds auf False. Nach dem Ändern dieses persistenten Gruppenattributs (oder eines beliebigen Gruppenattributs) berichtet die Wiedergabevorrichtung 710 die aktualisierten Gruppenattribute an die Fernsteuervorrichtung 310. Das Media Remote 312 kann dann seine GUIs aktualisieren, um die Änderung des Status der persistenten Wiedergabegruppe widerzuspiegeln.
  • In einigen Implementierungen kann eine persistente Gruppe eine Wiedergabevorrichtung innerhalb einer dynamischen Wiedergabegruppe sein. Beispielsweise kann die persistente Gruppe 740 zu einer dynamischen Wiedergabegruppe 750 hinzugefügt werden, in der die Wiedergabevorrichtung 730 die primäre Vorrichtung innerhalb der dynamischen Wiedergabegruppe ist. Beim Hinzufügen der persistenten Gruppe 740 zur dynamischen Gruppe 750 kann die dynamische Gruppenkennung für die Wiedergabevorrichtung 730 zu den Wiedergabevorrichtungen 710 und 720 verschoben werden, wie oben mit Bezug auf 6 beschrieben. Jedoch weisen die Wiedergabevorrichtungen 710 und 720 eine andere persistente Gruppenkennung (z. B. Kennung 10) als die Wiedergabevorrichtung 730 auf. Somit werden die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 als eine persistente Gruppe 740 innerhalb der dynamischen Gruppe 750 behandelt.
  • Dieser Unterschied zwischen persistenten Gruppen und dynamische Gruppen kann Unterschiede in der Art und Weise bewirken, wie jede Wiedergabevorrichtung Medienelemente darstellt. So kann beispielsweise ein Medienelement (z. B. ein Musiktitel, ein Film usw.) aus verschiedenen Audio-/Videokanälen bestehen (z. B. links, rechts, vorne links, vorne Mitte, vorne rechts, hinten rechts, hinten links, Subwoofer usw.). Wenn zu einer persistenten Gruppe kombiniert, kann eine Wiedergabevorrichtung nur einen Kanal darstellen. So kann beispielsweise in der persistenten Stereopaargruppe 740 die Wiedergabevorrichtung 710 konfiguriert werden, um den rechten Audiokanal für ein Musikmedienelement wiederzugeben, während die Wiedergabevorrichtung 720 konfiguriert werden kann, um den linken Audiokanal für das gleiche Musikmedienelement wiederzugeben, wodurch eine Stereo-Wiedergabe erzeugt wird. Ebenso kann in einer persistenten 5.1-Surround-Sound-Gruppenkonfiguration mit sechs Wiedergabevorrichtungen jede Wiedergabevorrichtung konfiguriert werden, um einen von sechs Audiokanälen darzustellen, die einem Filmmedienelement-Soundtrack zugeordnet sind (z. B. vorne links, vorne Mitte, vorne rechts, hinten rechts, hinten links, Subwoofer, usw.). Dies unterscheidet sich davon, wie sich die Wiedergabevorrichtung 730 verhält, da die Wiedergabevorrichtung 730 nicht Teil einer persistenten Gruppe ist. Wenn das gleiche Musikmedienelement an die Wiedergabevorrichtung 730 gestreamt wird, würde die Wiedergabevorrichtung 730 alle Audiokanäle für das Musikmedienelement darstellen.
  • In einigen Implementierungen kehren, wenn ein Mitglied einer persistenten Gruppe nicht erreichbar ist, die verbleibenden Mitglieder zurück zu einem nicht persistenten Gruppenverhalten. So kann beispielsweise in der persistenten Stereopaargruppe 740 die Wiedergabevorrichtung 710 konfiguriert werden, um den rechten Audiokanal für ein Musikmedienelement wiederzugeben, während die Wiedergabevorrichtung 720 konfiguriert werden kann, um den linken Audiokanal für das gleiche Musikmedienelement wiederzugeben, wodurch eine Stereo-Wiedergabe erzeugt wird. Wenn die Wiedergabevorrichtung 720 unerreichbar wird, kann die Wiedergabevorrichtung 710 zu einem nicht persistenten Gruppenverhalten zurückkehren und alle Audiokanäle (z. B. sowohl rechte als auch linke Audiokanäle) für das Musikmedienelement wiedergeben. Wenn die Wiedergabevorrichtung 720 wieder erreichbar wird, können die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 dynamisch zur Wiedergabe des rechten und linken Audiokanals als persistente Gruppe eines Stereopaares zurückkehren. Wiedergabevorrichtungen in einer persistenten Wiedergabegruppe, die einer 5.1-Surround-Sound-Konfiguration entspricht, können sich ähnlich verhalten wie die persistente Gruppe der Stereopaare.
  • In einigen Implementierungen kann eine persistente Gruppe eine Streaming-Vorrichtung (z. B. Streaming-Vorrichtung 510) einschließen. Zum Beispiel kann die persistente Gruppe eine Streaming-Vorrichtung 510 (z. B. eine Set-Top-Box, Streaming-Media-Player usw.) und eine oder mehrere Wiedergabevorrichtungen einschließen. Die Streaming-Vorrichtung 510 kann als die primäre Wiedergabevorrichtung in der persistenten Gruppe konfiguriert sein. In einigen Implementierungen können die Wiedergabevorrichtungen einer persistenten Wiedergabegruppe entsprechen (z. B. Stereopaar, 5.1 Surround-Sound, usw.). So kann die persistente Gruppe konfiguriert werden, um die Funktionalität eines kabelgebundenen In-Home-Entertainment-Systems zu kopieren, das Video (z. B. Set-Top-Box, Fernseher, usw.) und Stereo- oder Surround-Sound-Audioausgabe einschließt. Darüber hinaus wird durch Konfigurieren der Streaming-Vorrichtung 510 und der Wiedergabevorrichtungen zu einer persistenten Gruppe die Audioausgabe von der Streaming-Vorrichtung 510 zu den Wiedergabevorrichtungen weitergeleitet, wann immer Audioausgabe durch jedes Medienelement bereitgestellt wird, das durch die Streaming-Vorrichtung 510 dargestellt wird. Somit können die Wiedergabevorrichtungen in der persistenten Gruppe Medienelemente wiedergeben, als ob sie eine einzelne Vorrichtung wären.
  • In einigen Implementierungen sind die Wiedergabevorrichtungen innerhalb einer persistenten Gruppe untrennbar. Wenn beispielsweise die Wiedergabevorrichtung 710 und die Wiedergabevorrichtung 720 sowohl erreichbar sind als auch korrekt arbeiten, werden die beiden Wiedergabevorrichtungen 710 und Wiedergabevorrichtung 720 Medienelement zusammen oder überhaupt nicht wiedergeben. Wenn beispielsweise die Wiedergabevorrichtung 710 ein Musikmedienelement wiedergibt, wird die Wiedergabevorrichtung 720 das gleiche Musikmedienelement wiedergeben. Wenn die Wiedergabevorrichtung 710 einen Befehl zum Anhalten der Wiedergabe empfängt, wird die Wiedergabe auf der Wiedergabevorrichtung 720 ebenfalls angehalten. Wenn die Verbindung zur Wiedergabevorrichtung 720 gekapert wird (z. B. beginnt eine Streaming-Vorrichtung mit dem Streamen von Medien zur Wiedergabevorrichtung 720), dann wird auch die Verbindung zur Wiedergabevorrichtung 710 gekapert. Dieses Verhalten für die persistente Gruppe stellt sicher, dass sich die Wiedergabevorrichtungen innerhalb der persistenten Gruppe als eine einzelne Wiedergabevorrichtung verhalten.
  • In einigen Implementierungen können ältere Versionen der Fernsteuervorrichtung 310 nicht in der Lage sein, dynamische und/oder persistente Gruppen basierend auf von Wiedergabevorrichtungen empfangenen Gruppenattributen zu bestimmen. Somit können die älteren Fernsteuervorrichtungen jede Wiedergabevorrichtung einzeln auf der GUI 100 und/oder GUI 200 darstellen, wie oben beschrieben, anstatt ein Grafikelement auf der GUI 100 und/oder GUI 200 für jede Wiedergabegruppe (z. B. dynamisch oder persistent) darzustellen. Um zu vermeiden, dass Mitglieder einer Gruppe einzeln dargestellt werden, können die Wiedergabevorrichtungen so konfiguriert werden, dass nur die primäre Wiedergabevorrichtung (z. B. Gruppenleiter, primäre Vorrichtung, Master-Vorrichtung usw.) in einer Wiedergabegruppe ihre Verfügbarkeit ankündigt und mit Fernsteuervorrichtungen verbunden ist. In einer weiteren Variation dieses Ansatzes können primäre Wiedergabevorrichtungen konfiguriert werden, um Ankündigungen an ältere Fernsteuervorrichtungen unter Verwendung einer Ankündigungsnachricht bereitzustellen, für die die älteren Vorrichtungen konfiguriert sind, während sekundäre Wiedergabevorrichtungen in der Wiedergabegruppe für neue Fernsteuervorrichtungen (z. B. Fernsteuervorrichtung 310) Ankündigungen unter Verwendung von Ankündigungsnachrichten bereitstellen, für die nur neuere Fernsteuervorrichtungen konfiguriert sind. So können neuere Fernsteuervorrichtungen konfiguriert werden, um die alten und neuen Ankündigungsnachrichten zu empfangen und Wiedergabegruppen basierend auf den Wiedergabeattributen, die sie empfangen, zu erzeugen und darzustellen, während ältere Fernsteuervorrichtungen nur die primären Wiedergabevorrichtungen in jeder Wiedergabegruppe darstellen, die bei der Darstellung der GUI 100 und GUI 200, wie oben beschrieben, als Proxy für die Wiedergabegruppe dienen können.
  • 8 ist ein Blockdiagramm eines Systems 800 zum Streamen von Medienelementen zu einer persistenten Gruppe. In einigen Implementierungen können Streaming-Vorrichtungen mit persistenten Gruppen auf verschiedene Weise interagieren. Beispielsweise kann das System 800 einem beliebigen der oben beschriebenen Systeme entsprechen. Das System 800 kann eine Streaming-Vorrichtung 802 (z. B. entsprechend der Streaming-Vorrichtung 510) und/oder Wiedergabevorrichtungen 810 und 820 (z. B. entsprechend der Wiedergabevorrichtung 320) beinhalten. Die Streaming-Vorrichtung 802 kann alle Fähigkeiten der Fernsteuervorrichtung 310 aufweisen, wie oben beschrieben, und ist daher in der Lage, dynamische und persistente Wiedergabegruppen zu bestimmen oder zu erkennen.
  • In dem Beispiel von 8 können die Wiedergabevorrichtungen 810 und 820 als eine persistente Gruppe 830 (z. B. Stereopaar) konfiguriert sein. Basierend auf der Software- und/oder Hardwarekonfiguration, kann die Streaming-Vorrichtung 802 in der Lage sein, nur zu einer Wiedergabevorrichtung zu streamen, oder die Streaming-Vorrichtung 802 kann in der Lage sein, gleichzeitig an mehrere Wiedergabevorrichtungen zu streamen. In dem Beispiel von 8 ist die Streaming-Vorrichtung 802 in der Lage, Medienelemente gleichzeitig an mehrere Wiedergabevorrichtungen zu streamen. Wenn der Benutzer der Streaming-Vorrichtung 802 Eingaben macht, die anzeigen, dass die Streaming-Vorrichtung 802 Medienelemente an die persistente Gruppe 830 streamen soll, kann der Cluster-Manager 804 der Streaming-Vorrichtung 802 Streaming-Verbindungen sowohl zu der Wiedergabevorrichtung 810 als auch zu der Wiedergabevorrichtung 820 herstellen und verwalten. Wenn die Streaming-Verbindungen eingerichtet sind, kann der Cluster Manager 812 und/oder Cluster Manager 822 bestimmen (z. B. basierend auf Software- oder Hardware-Versionsinformationen, die von der Streaming-Vorrichtung 802 bereitgestellt werden), dass die Streaming-Vorrichtung 802 dazu in der Lage ist, gleichzeitig zu mehreren Wiedergabevorrichtungen zu streamen und wird nicht versuchen, den Medienstrom an die andere(n) Wiedergabevorrichtung(n) in der persistenten Gruppe 830 weiterzuleiten.
  • Wie vorstehend beschrieben, kann bei der Konfiguration der Wiedergabevorrichtungen 810 und 820 als Stereopaar eine Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 810) konfiguriert werden, um den linken Audiokanal für das gestreamte Medienelement darzustellen, und die andere Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 820) kann konfiguriert werden, um den rechten Audiokanal für das gestreamte Medienelement darzustellen. Wenn die Wiedergabevorrichtung 810 in der persistenten Gruppe 830 unerreichbar wird (z.B. nicht angeschlossen, außerhalb des Bereichs verschoben usw.), dann kann die Wiedergabevorrichtung 820 das Fehlen der Wiedergabevorrichtung 810 erkennen und automatisch sowohl den linken als auch den rechten Audiokanal wiedergeben. Wenn die Wiedergabevorrichtung 810 wieder erreichbar wird, kann die Wiedergabevorrichtung 820 erkennen, dass die Wiedergabevorrichtung 810 erreichbar ist, und eine Nachricht an die Streaming-Vorrichtung 802 senden, um zu bewirken, dass die Streaming-Vorrichtung 802 wieder mit der Wiedergabevorrichtung 810 verbunden wird. Die Wiedergabevorrichtung 820 kann dann automatisch die Darstellung nur des rechten Audiokanals wieder aufnehmen, und die Wiedergabevorrichtung 810 kann die Wiedergabe des linken Audiokanals des von der Streaming-Vorrichtung 802 gestreamten Medienelements wieder aufnehmen.
  • 9 ist ein Blockdiagramm eines Systems 900 zum Streamen von Medienelementen zu einer persistenten Gruppe. In einigen Implementierungen können Streaming-Vorrichtungen mit persistenten Gruppen auf verschiedene Weise interagieren. Beispielsweise kann das System 900 einem beliebigen der oben beschriebenen Systeme entsprechen. Das System 900 kann eine Streaming-Vorrichtung 902 (z. B. ähnlich wie die Streaming-Vorrichtung 510 konfiguriert) und/oder Wiedergabevorrichtungen 810 und 820 (z. B. ähnlich der Wiedergabevorrichtung 320 konfiguriert) einschließen. Die Streaming-Vorrichtung 802 kann alle Fähigkeiten der Fernsteuervorrichtung 310 aufweisen, wie oben beschrieben, und ist daher in der Lage, dynamische und persistente Wiedergabegruppen zu bestimmen oder zu erkennen.
  • In dem Beispiel von 9 können die Wiedergabevorrichtungen 810 und 820 als eine persistente Gruppe 830 (z. B. Stereopaar) konfiguriert sein. Basierend auf der Software- und/oder Hardwarekonfiguration, kann die Streaming-Vorrichtung 902 in der Lage sein, nur zu einer Wiedergabevorrichtung zu streamen, oder die Streaming-Vorrichtung 902 kann in der Lage sein, gleichzeitig an mehrere Wiedergabevorrichtungen zu streamen. In dem Beispiel von 9 ist die Streaming-Vorrichtung 902 in der Lage, Medienelemente nur an eine Wiedergabevorrichtung zu streamen. Daher wird, wenn der Benutzer der Streaming-Vorrichtung 902 eine Eingabe bereitstellt, die anzeigt, dass die Streaming-Vorrichtung 902 Medienelemente zu der persistenten Gruppe 830 streamen soll, die Streaming-Vorrichtung 902 eine Streaming-Verbindung zu dem Leiter oder der primären Wiedergabevorrichtung in der persistenten Gruppe 830, der Wiedergabevorrichtung 820, aufbauen. Wenn die Streaming-Verbindung eingerichtet ist, kann der Cluster Manager 822 bestimmen (z. B. basierend auf Software- oder Hardware-Versionsinformationen, die von der Streaming-Vorrichtung 902 bereitgestellt werden), dass die Streaming-Vorrichtung 902 nicht dazu in der Lage ist, an mehrere Wiedergabevorrichtungen gleichzeitig zu streamen und wird den Medienstrom an die andere(n) Wiedergabevorrichtung(n) (z. B. Wiedergabevorrichtung 810) in der persistenten Gruppe 830 weiterleiten.
  • Wie vorstehend beschrieben, kann bei der Konfiguration der Wiedergabevorrichtungen 810 und 820 als Stereopaar eine Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 810) konfiguriert werden, um den linken Audiokanal für das gestreamte Medienelement darzustellen, und die andere Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 820) kann konfiguriert werden, um den rechten Audiokanal für das gestreamte Medienelement darzustellen. Wenn die Wiedergabevorrichtung 810 in der persistenten Gruppe 830 unerreichbar wird (z. B. nicht angeschlossen, außerhalb des Bereichs verschoben usw.), dann kann die Wiedergabevorrichtung 820 das Fehlen der Wiedergabevorrichtung 810 erkennen, die Weiterleitung des Medienstroms an die Wiedergabevorrichtung 810 beenden und automatisch damit beginnen, sowohl den linken als auch den rechten Audiokanal wiederzugeben. Wenn die Wiedergabevorrichtung 810 wieder erreichbar wird, kann die Wiedergabevorrichtung 820 erkennen, dass die Wiedergabevorrichtung 810 erreichbar ist, und die Weiterleitung des Medienstroms an die Wiedergabevorrichtung 810 fortsetzen. Die Wiedergabevorrichtung 820 kann dann automatisch die Darstellung nur des rechten Audiokanals wieder aufnehmen, und die Wiedergabevorrichtung 810 kann die Wiedergabe des linken Audiokanals des von der Streaming-Vorrichtung 902 gestreamten Medienelements wieder aufnehmen.
  • 10 ist ein Blockdiagramm von einem System 1000 zum Darstellen von Medienelementen, die von einer primären Wiedergabevorrichtung in einer persistenten Gruppe gestreamt werden. Beispielsweise kann das System 1000 einem beliebigen der oben beschriebenen Systeme entsprechen. Das System 1000 kann die Wiedergabevorrichtungen 810 und 820 einschließen (z. B. ähnlich wie die Wiedergabevorrichtung 320 konfiguriert). Die Wiedergabevorrichtungen 810 und/oder 820 können alle oder einige der gleichen Fähigkeiten wie die Fernsteuervorrichtung 310 aufweisen, wie oben beschrieben, und sind daher in der Lage, dynamische und persistente Wiedergabegruppen zu bestimmen und/oder zu erkennen.
  • In dem Beispiel von 10 können die Wiedergabevorrichtungen 810 und 820 als eine persistente Gruppe 830 (z. B. Stereopaar, 5.1 Surround-Sound-Konfiguration) konfiguriert sein. Wenn ein Benutzer eine Eingabe (z. B. Spracheingabe, Berührungseingabe usw.) an die Wiedergabevorrichtung 810 bereitstellt, um die Wiedergabevorrichtung 810 zu veranlassen, mit der Wiedergabe eines Medienelements (z. B. von einer internen Medienanwendung, Medienanwendung 322, usw.) zu beginnen, kann die Wiedergabevorrichtung 810 die primäre Wiedergabevorrichtung in der persistenten Gruppe 830 werden. Der Cluster Manager 812 auf der Wiedergabevorrichtung 810 kann dann die Streaming-Verbindungen zu den Wiedergabevorrichtungen (z. B. Wiedergabevorrichtung 820) innerhalb der persistenten Gruppe steuern oder verwalten und/oder das Streaming des Medienelements an die Wiedergabevorrichtung 820 verwalten.
  • In einigen Implementierungen wird in einer persistenten Gruppe die Wiedergabevorrichtung, welche die Benutzereingabe empfängt, zur primären Wiedergabevorrichtung innerhalb der persistenten Gruppe. Da der Cluster Manager für das Verwalten der Vorrichtungen innerhalb der persistenten Gruppe verantwortlich ist, läuft der Cluster Manager nur auf der primären Vorrichtung. Somit kann der Cluster Manager auf unterschiedlichen Wiedergabevorrichtungen laufen, je nachdem, mit welcher Wiedergabevorrichtung der Benutzer sich entscheidet zu interagieren. Der Cluster Manager ist so konfiguriert, dass, wenn die primäre Wiedergabevorrichtung ein Medienelement wiedergibt, der Cluster Manager andere Wiedergabevorrichtungen in der persistenten Gruppe veranlasst, das Medienelement wiederzugeben, solange die anderen Wiedergabevorrichtungen verfügbar oder erreichbar sind.
  • Wie vorstehend beschrieben, kann bei der Konfiguration der Wiedergabevorrichtungen 810 und 820 als Stereopaar eine Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 810) konfiguriert werden, um den linken Audiokanal für das gestreamte Medienelement darzustellen, und die andere Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 820) kann konfiguriert werden, um den rechten Audiokanal für das gestreamte Medienelement darzustellen. Wenn die Wiedergabevorrichtung 810 in der persistenten Gruppe 830 unerreichbar wird (z. B. nicht angeschlossen, außerhalb des Bereichs verschoben usw.), dann kann der Cluster Manager 822 auf der Wiedergabevorrichtung 820 das Fehlen der Wiedergabevorrichtung 810 erkennen und die Wiedergabevorrichtung 820 veranlassen, das Streaming des Medienstroms an die Wiedergabevorrichtung 810 zu beenden, und veranlassen, dass die Wiedergabevorrichtung 810 automatisch beginnt, sowohl den linken als auch den rechten Audiokanal wiederzugeben. Wenn die Wiedergabevorrichtung 810 wieder erreichbar wird, kann der Cluster Manager 822 auf der Wiedergabevorrichtung 820 erkennen, dass die Wiedergabevorrichtung 810 erreichbar ist, und das Streaming des Medienstroms an die Wiedergabevorrichtung 810 fortsetzen. Die Wiedergabevorrichtung 820 kann dann automatisch die Darstellung nur des rechten Audiokanals wieder aufnehmen, und die Wiedergabevorrichtung 810 kann die Wiedergabe des linken Audiokanals des von der Wiedergabevorrichtung 820 gestreamten Medienelements wieder aufnehmen.
  • 11 ist ein Blockdiagramm eines beispielhaften Systems 1100 zum Synchronisieren der Wiederaufnahme der Wiedergabe zwischen Wiedergabevorrichtungen innerhalb einer Wiedergabegruppe. Beispielsweise kann das System 1100 einem beliebigen der oben beschriebenen Systeme entsprechen. Das System 1100 kann die Wiedergabevorrichtungen 810 und 820 einschließen (z. B. ähnlich wie die Wiedergabevorrichtung 320 konfiguriert). Die Wiedergabevorrichtungen 810 und/oder 820 können alle oder einige der gleichen Fähigkeiten wie die Fernsteuervorrichtung 310 aufweisen, wie oben beschrieben, und sind daher in der Lage, dynamische und persistente Wiedergabegruppen zu bestimmen und/oder zu erkennen. Das System 1100 kann die Streaming-Vorrichtung 1102 enthalten. Die Streaming-Vorrichtung 1102 kann der Streaming-Vorrichtung 510 entsprechen, wie oben beschrieben. Die Streaming-Vorrichtung 1102 kann einer Wiedergabevorrichtung, wie zum Beispiel der Wiedergabevorrichtung 320, 810 oder 820, wie oben beschrieben, entsprechen. Medienelemente können von der Streaming-Vorrichtung 510 zur Wiedergabegruppe 830 unter Verwendung irgendeines der oben beschriebenen Mechanismen gestreamt werden.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1102 die Wiederaufnahme der Wiedergabe zwischen Wiedergabevorrichtungen synchronisieren. Wenn zum Beispiel Medien an die Wiedergabevorrichtungen 810 und 820 gestreamt werden, kann die Streaming-Vorrichtung 1102 Mediendaten schneller an die Wiedergabevorrichtungen senden, als die Wiedergabevorrichtungen die Mediendaten wiedergeben können. Somit kann jede Wiedergabevorrichtung 810 und 820 die Mediendaten beim Empfang in den entsprechenden Puffern 1110 und 1120 speichern und die Mediendaten gemäß einer definierten Zeitachse oder Geschwindigkeit darstellen, so dass die Audio- und/oder Videoausgabe der Wiedergabevorrichtung 810 und 820 synchronisiert wird.
  • Wenn der Benutzer eine Eingabe (z. B. Berührung, Sprache usw.) an die Streaming-Vorrichtung 1102 bereitstellt, um die Wiedergabe des gestreamten Medienelements anzuhalten, kann die Streaming-Vorrichtung 1102 einen Befehl an jede Wiedergabevorrichtung 810 und 820 senden, um die Wiedergabe der Mediendaten zu stoppen. Aufgrund von Netzwerklatenzproblemen oder anderen Ursachen für Verzögerungen beim Empfangen des Stopp-Befehls kann die Wiedergabevorrichtung 810 jedoch die Wiedergabe des Medienelements an einem Mediensample entsprechend dem Standort 1112 im Puffer 1110 stoppen und die Wiedergabevorrichtung 820 kann die Wiedergabe des Medienelements an einem Mediensample entsprechend dem Standort 1122 im Puffer 1120 stoppen. Die Position 1112 kann beispielsweise dem Mediensample zum Zeitpunkt 1:00 (z. B. eine Minute) in dem Medienelement entsprechen, während die Position 1122 dem Mediensample zum Zeitpunkt 1:05 in dem Medienelement entsprechen kann. Da wiedergegebene Mediensamples aus den Puffern entfernt werden, hat die Wiedergabevorrichtung 820 nicht die Mediensamples, die notwendig sind, um die Wiedergabe vom Standort 1112 wieder aufzunehmen (z. B. Zeitindex 1:00). Wenn die Wiedergabe also von Standort 1112 aus fortgesetzt wird, verstummt die Wiedergabevorrichtung 820, bis die Wiedergabevorrichtung 810 den Standort 1122 erreicht (z. B. Zeitindex 1:05).
  • Um zu vermeiden, dass die Wiedergabevorrichtung 810 in der Wiedergabegruppe 830 abgespielt wird, während die Wiedergabevorrichtung 820 in der Wiedergabegruppe 830 stumm ist, kann die Wiedergabe von einer Stelle in den Puffern 1110 und 1120 fortgesetzt werden, an der sowohl die Wiedergabevorrichtung 810 als auch 820 über Mediensamples verfügen. Um dies zu erreichen, kann jede Wiedergabevorrichtung 810 und 820 als Reaktion auf das Empfangen des Pause-Befehls von der Streaming-Vorrichtung 1102 die Position innerhalb ihrer jeweiligen Puffer 1110 und 1120 berichten, an der jede Wiedergabe tatsächlich gestoppt wurde. Anders ausgedrückt, sowohl die Wiedergabevorrichtung 810 als auch 820 kann ihr erstes verfügbares Mediensample in ihren jeweiligen Puffern 1110 und 1120 berichten. Zum Beispiel kann die Wiedergabevorrichtung 810 der Streaming-Vorrichtung 1102 eine Kennung (z. B. Zeitindex) für das Mediensample an der Stelle 1112 in Puffer 1110 senden. Die Wiedergabevorrichtung 820 kann der Streaming-Vorrichtung 1102 eine Kennung (z. B. Zeitindex) für das Mediensample an der Stelle 1122 in Puffer 1120 senden.
  • In einigen Implementierungen kann die Streaming-Vorrichtung einen Befehl zur Wiederaufnahme der Wiedergabe erzeugen, der einen Zeitindex und eine Netzwerkzeit zum Verankern einer Wiedergabezeitachse und einen Zeitindex zum Abspielen von hörbarem Ton einschließt, so dass die Wiedergabe des Medienelements an jeder Wiedergabevorrichtung 810 und 830 synchronisiert ist. So kann beispielsweise der Ankerzeitindex verwendet werden, um ein Medienelementsample in den Medienpuffern 1110 und 1120 zu identifizieren. Der Ankerzeitindex kann so ausgewählt werden, dass er bei oder nach dem letzten (z. B. größten) Zeitindex auftritt, der von jeder Wiedergabevorrichtung in der Wiedergabegruppe 830 berichtet wird. In Fortführung des obigen Beispiels, da die Wiedergabevorrichtung 820 einen zuletzt abgespielten Sample-Zeitindex von 1:05 (z. B. entsprechend Standort 1122) und die Wiedergabevorrichtung 810 einen zuletzt abgespielten Sample-Zeitindex von 1:00 (z. B. entsprechend Standort 1112) berichtete, kann die Streaming-Vorrichtung 1102 einen Anker-Sample-Zeitindex auswählen, der bei 1:05 oder später liegt.
  • Die Streaming-Vorrichtung 1102 kann auch eine Ankernetzwerkzeit für die WiedergabeZeitachse auswählen. Wenn beispielsweise die Streaming-Vorrichtung 1102 Benutzereingaben empfängt, die anzeigen, dass der Benutzer die Wiedergabe fortsetzen möchte, kann die Streaming-Vorrichtung 1102 eine Netzwerkzeit auswählen, die nahe der aktuellen Zeit liegt.
  • Die Streaming-Vorrichtung 1102 kann auch einen Präsentationssample-Zeitindex auswählen, um mit der akustischen (und/oder visuellen) Wiedergabe des Medienelements zu beginnen. Wenn beispielsweise die Streaming-Vorrichtung 1102 bestimmt hat, dass der Anker-Sample-Zeitindex 1:10 zur Netzwerkzeit ‚T‘ beträgt, dann kann die Wiedergabezeitachse für das Medienelement vom Sample-Zeitindex 1:10 zur Netzwerkzeit T beginnen. Die akustische und/oder visuelle Wiedergabe des Medienelements muss jedoch nicht erst zu einem späteren Zeitpunkt erfolgen, der durch den bestimmten Präsentationssample-Zeitindex (z. B. zum Zeitindex 1:10) festgelegt ist. Wenn die Streaming-Vorrichtung 1102 einen Befehl an die Wiedergabevorrichtungen 810 und 820 sendet, um die Wiedergabe fortzusetzen, und einen Anker-Sample-Zeitindex von 1:10 und eine Anker-Netzwerkzeit ‚T‘ mit einem Präsentationssample-Zeitindex von 1:15 angibt, dann kann jede Wiedergabevorrichtung 810 und 820 ihre jeweiligen Wiedergabezeitachsen bei Sample-Index 1:10 (z. B. Pufferstellen 1114 / 1124) zur Netzwerkzeit ‚T‘ starten und die Darstellung einer Audio- oder Videoausgabe bis zum Sample-Zeitindex 1:15 (z. B. Pufferstellen 1116/1126) verzögern. Dies ermöglicht es den Vorrichtungen, ihre Wiedergabezeitachsen zu synchronisieren und gleichzeitig die vom Menschen wahrnehmbare Wiedergabe zu starten (fortzusetzen). Durch die Angabe eines Anker-Sample-Zeitindex, einer Anker-Netzwerkzeit und eines Präsentationssample-Zeitindex kann die Streaming-Vorrichtung 1102 sicherstellen, dass beide Wiedergabevorrichtungen 810 und 820 die Wiedergabe gleichzeitig fortsetzen.
  • 12 ist ein Blockdiagramm eines beispielhaften Systems 1200 zum automatischen Koppeln von Benutzervorrichtungen mit Wiedergabevorrichtungen. Beispielsweise kann das System 1200 einem beliebigen der oben beschriebenen Systeme entsprechen. Da Benutzervorrichtungen (z. B. Streaming-Vorrichtungen, Fernsteuervorrichtungen usw.) über Peer-to-Peer-Verbindungen (z. B. Bluetooth, Peer-to-Peer-Wi-Fi usw.) mit den Wiedergabevorrichtungen verbunden werden können, müssen Benutzervorrichtungen in der Regel einen Kopplungsprozess durchlaufen, um eine Verbindung mit Wiedergabevorrichtungen herzustellen. Der Kopplungsprozess erfordert oft, dass sich jede Benutzervorrichtung mit einer Wiedergabevorrichtung verbindet und dass ein Benutzer einen Code oder ein Passwort eingibt, um mit den Wiedergabevorrichtungen zu koppeln und mit ihnen zu interagieren (z. B. Medien streamen, Statusinformationen erhalten, usw.). Dieser Kopplungsprozess muss oft für jede Wiedergabevorrichtung und jede Benutzervorrichtung wiederholt werden. Das System 1200 kann die Belastung des Koppelns von Benutzervorrichtungen mit Wiedergabevorrichtungen durch automatisches Koppeln autorisierter Benutzervorrichtungen reduzieren.
  • In einigen Implementierungen kann ein Benutzer der Benutzervorrichtung 1210 eine Datenbank für autorisierte Benutzer 1212 erzeugen. So kann beispielsweise die Benutzervorrichtung 1210 eine Home-Anwendung 332 einschließen, die es dem Benutzer (z. B. Hausbesitzer, Hausadministrator usw.) der Benutzervorrichtung 1210 ermöglicht, Benutzer und/oder Benutzervorrichtungen (z.B. Benutzervorrichtung 1220) anzugeben, die berechtigt sind, Wiedergabevorrichtungen (z. B. Wiedergabevorrichtung 320) innerhalb der Home- oder einer anderen Umgebung des Benutzers zu benutzen. Die Datenbank für autorisierte Benutzer 1212 kann Benutzerkennungen und/oder Vorrichtungskennungen für jeden autorisierten Benutzer und/oder jede Benutzervorrichtung einschließen. Wenn die identifizierten Benutzer und/oder Benutzervorrichtungen bereits mit einigen Wiedergabevorrichtungen gekoppelt wurden, kann die Datenbank für autorisierte Benutzer 1212 Kopplungstoken einschließen, die durch die gekoppelten Wiedergabevorrichtungen erzeugt und bereitgestellt werden. Zum Beispiel kann die Datenbank für autorisierte Benutzer 1212 eine Zuordnung autorisierter Benutzervorrichtungskennungen zu entsprechenden Kopplungstoken einschließen, die für jede der autorisierten Benutzervorrichtungskennungen erzeugt werden. Wenn jedoch die Datenbank für autorisierte Benutzer 1212 anfänglich auf der Benutzervorrichtung 1210 erzeugt wird, kann die Datenbank für autorisierte Benutzer keine Kopplungstoken einschließen.
  • In einigen Implementierungen kann die Benutzervorrichtung 1210 mit der Wiedergabevorrichtung 320 gekoppelt werden. So kann beispielsweise die Benutzervorrichtung 1210 eine Ankündigung von der Wiedergabevorrichtung 320 empfangen, die anzeigt, dass die Wiedergabevorrichtung 320 verfügbar ist und einige Dienste bereitstellt (z. B. Medienstreaming, Fernzugriff usw.). Die Benutzervorrichtung 1210 kann dem Benutzer der Benutzervorrichtung 1210 eine Benachrichtigung anzeigen, die anzeigt, dass die Wiedergabevorrichtung 320 erkannt wurde. Der Benutzer der Benutzervorrichtung 1210 kann Eingaben für die Benutzervorrichtung 1210 bereitstellen, um einen Kopplungsprozess zwischen der Wiedergabevorrichtung 320 und der Benutzervorrichtung 1210 einzuleiten. So kann beispielsweise die Wiedergabevorrichtung 320 dem Benutzer einen Code präsentieren, und der Benutzer kann den Code in eine Benutzerschnittstelle der Benutzervorrichtung 1210 eingeben. Die Benutzervorrichtung 1210 kann den Code an die Wiedergabevorrichtung 320 senden, um sicherzustellen, dass sich die Benutzervorrichtung 1210 in der Nähe der Wiedergabevorrichtung 320 befindet und gekoppelt werden sollte.
  • In einigen Implementierungen kann die Benutzervorrichtung 1210 nach der Kopplung mit der Wiedergabevorrichtung 320 automatisch die in der Datenbank für autorisierte Benutzer 1212 identifizierten Benutzervorrichtungen mit der Wiedergabevorrichtung 320 koppeln. Um die Kopplung der in der Datenbank für autorisierte Benutzer 1212 identifizierten Benutzervorrichtungen mit der Wiedergabevorrichtung 320 einzuleiten, kann die Benutzervorrichtung 1210 die Datenbank für autorisierte Benutzer 1212 an die Wiedergabevorrichtung 320 senden. So kann beispielsweise die Benutzervorrichtung 1210 die Datenbank für autorisierte Benutzer 1212 oder einen Teil der Datenbank 1212, der die Benutzerkennungen und/oder Vorrichtungskennungen für die autorisierten Benutzer in der Datenbank für autorisierte Benutzer 1212 enthält, an die Wiedergabevorrichtung 320 senden. Die Wiedergabevorrichtung 320 kann den empfangenen Teil der Datenbank für autorisierte Benutzer 1212 als Datenbank für autorisierte Benutzer 1202 speichern. Die Wiedergabevorrichtung 320 kann dann eindeutige Kopplungstoken für jeden identifizierten Benutzer und/oder identifizierte Benutzervorrichtung in der Datenbank für autorisierte Benutzer 1202 erzeugen. Die Wiedergabevorrichtung 320 kann die Kopplungstoken in der Datenbank für autorisierte Benutzer 1202 in Verbindung mit der jeweiligen Benutzerkennung und/oder Vorrichtungskennung jedes Tokens speichern. Die Wiedergabevorrichtung 320 kann dann eine Kopie der Datenbank für autorisierte Benutzer 1202, einschließlich der Kopplungstoken, an die Benutzervorrichtung 1210 senden, um den Kopplungsprozess abzuschließen. Die Benutzervorrichtung 1210 kann dann die Datenbank für autorisierte Benutzer 1212 mit den von der Wiedergabevorrichtung 320 empfangenen Kopplungstoken aktualisieren, so dass jeder Benutzerkennung und/oder Benutzervorrichtung in der Datenbank für autorisierte Benutzer 1212 das entsprechende Kopplungstoken zugeordnet ist, das für die Benutzerkennung und/oder Benutzervorrichtungskennung durch die Wiedergabevorrichtung 320 erzeugt wurde.
  • In einigen Implementierungen kann die Benutzervorrichtung 1210 die Datenbank für autorisierte Benutzer 1212 mit anderen autorisierten Benutzervorrichtungen synchronisieren. So kann beispielsweise die Benutzervorrichtung 1220 eine autorisierte Benutzervorrichtung eines autorisierten Benutzers sein, der in der Datenbank für autorisierte Benutzer 1212 identifiziert wurde. Die Benutzervorrichtung 1210 kann einen Teil der Datenbank für autorisierte Benutzer 1212, der sich auf den Benutzer der Benutzervorrichtung 1220 bezieht, einschließlich der von der Wiedergabevorrichtung 320 erzeugten Kopplungstoken, an die Benutzervorrichtung 1220 senden. So kann beispielsweise die Benutzervorrichtung 1220 die Benutzerkennung, die Vorrichtungskennungen und/oder die dem Benutzer der Benutzervorrichtung 1220 zugeordneten Kopplungstoken empfangen und in der Datenbank für autorisierte Benutzer 1222 speichern. Die Benutzervorrichtung 1220 empfängt und speichert keine Benutzerkennungen, Vorrichtungskennungen und/oder Kopplungstoken, die anderen Benutzern anderer Vorrichtungen zugeordnet sind, da der Benutzer der Benutzervorrichtung 1220 nicht der Administrator oder Eigentümer des Hauses oder der Umgebung ist.
  • Die Benutzervorrichtung 1220 kann die empfangene Datenbank für autorisierte Benutzer 1212 als Datenbank für autorisierte Benutzer 1222 speichern oder die Datenbank für autorisierte Benutzer 1222 mit den Daten und/oder Token in der Datenbank für autorisierte Benutzer 1212 aktualisieren. Nach dem Speichern oder Aktualisieren der Datenbank für autorisierte Benutzer 1222 wird in der Datenbank 1222 nun das Kopplungstoken für die Vorrichtungskennung des Benutzers 1220 und/oder die Benutzerkennung des Benutzers der Benutzervorrichtung 1220 durch die Wiedergabevorrichtung 320 erzeugt. Wenn die Benutzervorrichtung 1220 zum ersten Mal versucht, eine Kopplung mit der Wiedergabevorrichtung 320 herzustellen, kann die Benutzervorrichtung 1220 das Kopplungstoken und seine Vorrichtungskennung und/oder Benutzerkennung an die Wiedergabevorrichtung 320 senden, anstatt den Benutzer zur Teilnahme am Kopplungsprozess durch Eingabe eines Codes oder einer anderen Eingabe aufzufordern. Wenn die Wiedergabevorrichtung 320 die Benutzerkennung oder Vorrichtungskennung und das Kopplungstoken von der Benutzervorrichtung 1220 empfängt, kann die Wiedergabevorrichtung 320 das Kopplungstoken mit den in der Datenbank für autorisierte Benutzer 1202 gespeicherten Kopplungstoken vergleichen, um zu überprüfen, ob das empfangene Kopplungstoken mit dem von der Wiedergabevorrichtung 320 für den identifizierten Benutzer oder die Vorrichtung erzeugten Kopplungstoken übereinstimmt. Nachdem das Kopplungstoken verifiziert (oder validiert) wurde, kann die Wiedergabevorrichtung 320 der Benutzervorrichtung 1220 erlauben, die von der Wiedergabevorrichtung 320 bereitgestellten Dienste zu nutzen. Somit kann die Benutzervorrichtung 1220 mit der Wiedergabevorrichtung 320 gekoppelt werden, ohne dass der Benutzer an dem Kopplungsprozess teilnehmen muss, da der Kopplungsprozess im Namen der Benutzervorrichtung 1220 von der Benutzervorrichtung 1210 durchgeführt wurde, so dass die Benutzervorrichtung 1210 als Proxy für die Benutzervorrichtung 1220 diente, während sie den Kopplungsprozess im Namen der Benutzervorrichtung 1220 durchführte. Wenn das Kopplungstoken nicht verifiziert werden kann, kann die Wiedergabevorrichtung 320 verhindern, dass die Benutzervorrichtung 1220 auf die Wiedergabevorrichtung 320 zugreift und/oder einen interaktiven Kopplungsprozess mit der Benutzervorrichtung 1220 einleiten, wie oben beschrieben. Wenn beispielsweise das Kopplungstoken nicht mit einem Token in der Datenbank für autorisierte Benutzer 1202 übereinstimmt oder wenn die von der Benutzervorrichtung 1220 bereitgestellte Benutzerkennung oder Vorrichtungskennung nicht in der Datenbank für autorisierte Benutzer 1202 gefunden werden kann, kann die Wiedergabevorrichtung 320 einen benutzerinteraktiven Kopplungsprozess mit der Benutzervorrichtung 1220 einleiten, wie oben beschrieben.
  • 13 ist ein Blockdiagramm eines beispielhaften Systems 1300 zum Verwalten von Lautstärkeänderungen zwischen vernetzten Wiedergabevorrichtungen. Beispielsweise kann das System 1300 einem beliebigen der oben beschriebenen Systeme entsprechen. Die Fernsteuervorrichtungen 1310 und/oder 1320 können ähnlich wie die oben beschriebene Fernsteuervorrichtung 310 konfiguriert sein. Das Media Remote 1312 und das Media Remote 1322 können so konfiguriert werden, dass sie die oben beschriebene GUI 100 und/oder GUI 200 darstellen und Lautstärkeregler zum Fernsteuern der Wiedergabelautstärke der Wiedergabevorrichtung 320 bereitstellen können. Das Media Remote 1312 und das Media Remote 1322 können mit dem Media Remote 1302 unter Verwendung der oben beschriebenen Mechanismen kommunizieren, um die Wiedergabelautstärke auf der Wiedergabevorrichtung 320 und/oder einer Wiedergabegruppe (z. B. dynamische oder persistente Gruppe) einzustellen, wobei die Wiedergabevorrichtung 320 die primäre oder Master-Wiedergabevorrichtung in der Wiedergabegruppe ist.
  • Um den Netzwerkverkehr in Bezug auf Lautstärkeneingabefehler zu reduzieren, kann in einigen Implementierungen die Fernsteuervorrichtung 1310 einen adaptiven Lautstärkeänderungsschwellenwert implementieren. Beispielsweise können Lautstärkeänderungen an der Fernsteuervorrichtung 1310 in Bezug auf die Lautstärke an der Wiedergabevorrichtung 320, bei denen die Lautstärkedifferenz kleiner als eine Schwellenwertgröße ist, ignoriert werden und nicht an die Wiedergabevorrichtung 320 gesendet werden. Lautstärkeänderungen, die kleiner als der Schwellenwert sind, können als Eingabefehler betrachtet (z. B. aufgrund von Ungenauigkeiten bei der Touch-Eingabe) und ignoriert werden. Dieser Schwellenwert kann so angepasst werden, dass Lautstärkeänderungen bei höheren Lautstärken (z. B. zum lauteren Ende des Lautstärkebereichs hin) einen größeren Änderungsschwellenwert (z.B. 5 % des Lautstärkebereichs) aufweisen, der vor dem Senden einer Lautstärkeänderung überschritten werden muss, während Lautstärkeänderungen bei niedrigeren Lautstärken (z. B. näher an Null) einen kleineren Änderungsschwellenwert (z. B. 1 % des Lautstärkebereichs) aufweisen, der vor dem Senden einer Lautstärkeänderung an die Wiedergabevorrichtung 320 überschritten werden muss.
  • In einigen Implementierungen kann die Fernsteuervorrichtung 1310 eine Verzögerung implementieren, bevor eine Lautstärkeänderung an die Wiedergabevorrichtung 320 gesendet wird. Anstatt beispielsweise Lautstärkeänderungen sofort an die Wiedergabevorrichtung 320 zu senden, kann die Fernsteuervorrichtung 1310 Lautstärkeänderungen für einen bestimmten Zeitraum (z. B. 0,5 Sekunden, 1 Sekunde usw.) zwischenspeichern, nachdem der Benutzer die Eingabe zum Ändern der Lautstärke gestoppt hat und bevor sie die Lautstärkeänderung sendet. Das verzögerte Senden der Lautstärkeänderung an die Wiedergabevorrichtung 320 ermöglicht es dem Benutzer, seine Entscheidung über die Änderung der Lautstärke abzuschließen, und verhindert das sofortige Senden von Lautstärkeänderungen, die der Benutzer möglicherweise nicht wirklich auf die Wiedergabevorrichtung 320 anwenden möchte.
  • In einigen Implementierungen kann die Fernsteuervorrichtung 1310 die Aktualisierung des Lautstärke-Steuerelements der Benutzerschnittstelle verzögern, um die aktuelle Lautstärke an einer Netzwerkvorrichtung wiederzugeben, wenn der Benutzer gerade eine Eingabe für das Lautstärke-Steuerelement der Benutzerschnittstelle bereitstellt oder wenn der Benutzer kürzlich die Eingabe für das Steuerelement der Benutzerschnittstelle beendet hat. So kann beispielsweise der Benutzer der Fernsteuervorrichtung 1310 eine Eingabe in ein Lautstärke-Steuerelement der Benutzerschnittstelle (z. B. Lautstärkeregler 228, Hebel 230 von 2) vornehmen, während ein anderer Benutzer der Fernsteuervorrichtung 1320 auch die Lautstärke der Wiedergabevorrichtung 320 einstellt. Um eine Situation zu vermeiden, in der sich der Lautstärkehebel 230 vom Finger des Benutzers entfernt, während die Benutzereingabe zum Einstellen der Lautstärke bereitgestellt wird, kann die Fernsteuervorrichtung 1310 die Aktualisierung der Anzeige des Lautstärke-Steuerelements verzögern, um die tatsächliche Lautstärke der Wiedergabevorrichtung 320 wiederzugeben, bis eine Zeitspanne vergangen ist, nachdem der Benutzer die Eingabe der Lautstärke eingestellt hat. Wenn die Verzögerungszeit beispielsweise eine Sekunde beträgt, dann werden alle von der Wiedergabevorrichtung 320 empfangenen Lautstärke-Statusinformationen ignoriert, wenn der Benutzer eine Eingabe vornimmt oder innerhalb der letzten Sekunde eine Eingabe vorgenommen hat. Eine Sekunde, nachdem der Benutzer die Eingabe der Lautstärke gestoppt hat, wird die von dem Media Remote 1312 auf der Fernsteuervorrichtung 1310 angezeigte Lautstärkeregelung jedoch aktualisiert, um die tatsächliche Lautstärke der Wiedergabevorrichtung 320 wiederzugeben. Somit wird der Benutzer nicht durch eine Lautstärkesteuerung verwirrt, die nicht mit der bereitgestellten Benutzereingabe übereinstimmt.
  • 14 ist ein Blockdiagramm eines beispielhaften Mediensystems 1400, das konfiguriert ist, um automatisch Streaming-Medienverbindungen zwischen Wiedergabevorrichtungen aufzubauen. Zum Beispiel kann eine Streaming-Vorrichtung konfiguriert sein, um Medien-Streaming-Verbindungen zu Wiedergabevorrichtungen automatisch einzurichten und/oder wiederherzustellen, nachdem die Verbindungen durch eine andere Medien-Streaming-Vorrichtung gekapert wurden.
  • In einigen Implementierungen kann das Mediensystem 1400 die Streaming-Vorrichtung 1410 enthalten. Beispielsweise kann die Streaming-Vorrichtung 1410 der Streaming-Vorrichtung 510 und/oder der Wiedergabevorrichtung 320 entsprechen, die oben beschrieben sind. Zum Beispiel kann in einigen Fällen die Streaming-Vorrichtung 1410 eine Wiedergabevorrichtung 320 sein, die die Medien-Streaming-Funktionen durchführt, die mit Bezug auf die Streaming-Vorrichtung 510 beschrieben sind.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1410 den Routing-Manager 1412 einschließen. Zum Beispiel kann der Routing-Manager 1412 dem oben beschriebenen Session-Manager 330 entsprechen. Der Routing-Manager 1412 kann ein Repository von Routinginformationen verwalten, die verfügbare Wiedergabevorrichtungen (z. B. Wiedergabevorrichtungen 1420, 1430 usw.), aktuelle Verbindungen zwischen der Streaming-Vorrichtung 1410 und anderen Vorrichtungen, vorherige Verbindungen zwischen der Streaming-Vorrichtung 1410 und anderen Vorrichtungen und/oder Wiedergabegruppenkonfigurationen (z. B. welche Wiedergabevorrichtungen sich in welchem Raum eines Hauses befinden, welche Wiedergabevorrichtungen sich in welchen dynamischen und/oder persistenten Wiedergabegruppen befinden usw.) beschreiben.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1410 Mediendaten zu der Wiedergabevorrichtung 1420 und/oder der Wiedergabevorrichtung 1430 streamen. So kann beispielsweise die Streaming-Vorrichtung 1410 eine Medien-Streaming-Vorrichtung sein, die an einen Fernseher, Lautsprecher usw. angeschlossen ist. Ein Benutzer der Streaming-Vorrichtung 1410 kann der Streaming-Vorrichtung 1410 Eingaben zur Verfügung stellen, um die Streaming-Vorrichtung 1410 zu veranlassen, Mediendaten (z. B. Audiodaten, Videodaten usw.) an die Wiedergabevorrichtung 1420 und/oder die Wiedergabevorrichtung 1430 zu streamen. In einigen Implementierungen kann diese Benutzereingabe, welche die Wiedergabevorrichtung 1420 und/oder Wiedergabevorrichtung 1430 als Wiedergabevorrichtungen für die Streaming-Vorrichtung 1410 bestimmt, dazu führen, dass die Streaming-Vorrichtung 1410 automatisch eine dynamische Wiedergabegruppe erzeugt, die die Wiedergabevorrichtung 1420, die Wiedergabevorrichtung 1430 und/oder die Streaming-Vorrichtung 1410 einschließt. Die Streaming-Vorrichtung 1410 kann eine Verbindung zu der Wiedergabevorrichtung 1420 und/oder der Wiedergabevorrichtung 1430 herstellen und die vom Benutzer ausgewählten Medien an die Wiedergabevorrichtung 1420 und/oder die Wiedergabe 1430 streamen.
  • In einigen Implementierungen kann der Routing-Manager 1412 Routinginformationen speichern, die das Routing der gestreamten Medien zu Wiedergabevorrichtungen identifizieren. Zum Beispiel kann der Routing-Manager 1412 Routinginformationen speichern, die die letzte (z. B. jüngste) Media-Routing-Konfiguration für die Streaming-Vorrichtung 1410 anzeigen. Somit kann der Routing-Manager 1412 Routinginformationen speichern, die anzeigen, dass die Streaming-Vorrichtung 1410 Mediendaten an die Wiedergabevorrichtung 1420 und/oder die Wiedergabevorrichtung 1430 streamt. Aktive Verbindungen zwischen den Vorrichtungen werden in 14 durch durchgezogene Doppelpfeillinien dargestellt. Beispielsweise wird die aktuelle Streaming-Medienverbindung zwischen der Streaming-Vorrichtung 1410 und der Wiedergabevorrichtung 1420 durch die Zeile 1402 dargestellt.
  • Wie oben beschrieben, werden Streaming-Medienverbindungen zwischen Vorrichtungen unter Verwendung eines Verbindungskapermechanismus hergestellt. So kann beispielsweise die letzte Vorrichtung, die die Streaming-Medienverbindung anfordert, die Streaming-Medienverbindung verwenden. Wenn daher die Streaming-Vorrichtung 1440 (z. B. eine andere Vorrichtung ähnlich der Streaming-Vorrichtung 1410) das Streaming von Mediendaten an die Wiedergabevorrichtung 1420 (z. B. Verbindung 1442) beginnt, kapert die Streaming-Vorrichtung 1440 die Streaming-Verbindung 1402 zu der Wiedergabevorrichtung 1420. Somit kann die Verbindung 1402 zwischen der Streaming-Vorrichtung 1410 und der Wiedergabevorrichtung 1420 beendet werden, wie durch die gestrichelte Linie 1404 dargestellt.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1410 das Darstellen (z. B. Streaming, Spielen usw.) eines Medienelements stoppen (z. B. unterbrechen), wenn eine Wiedergabevorrichtung von der Streaming-Vorrichtung 1410 weg gekapert wird. Wenn beispielsweise die Streaming-Vorrichtung 1440 die Verbindung zur Wiedergabevorrichtung 1420 kapert, kann die Streaming-Vorrichtung 1410 eine Meldung empfangen, dass die Verbindung zur Wiedergabevorrichtung 1420 gekapert wurde. Wenn die Wiedergabevorrichtung 1420 von der Streaming-Vorrichtung 1410 weg gekapert wird, kann die Streaming-Vorrichtung 1410 aufhören, das Medienelement, das die Streaming-Vorrichtung 1410 an die Wiedergabevorrichtung 1420 gestreamt hat, darzustellen (z. B. Wiedergabe, Streaming usw.). In einigen Implementierungen wird die Streaming-Vorrichtung 1410 weiterhin das Medienelement darstellen, wenn sich die von der Streaming-Vorrichtung 1440 gekaperte Wiedergabevorrichtung in einem anderen Raum (z. B. in einem Haus, Büro, Gebäude usw.) befindet als die Streaming-Vorrichtung 1410.
  • In einigen Implementierungen setzt die Streaming-Vorrichtung 1410 das Darstellen von Video entsprechend dem Medienelement fort, während das dem Medienelement entsprechende Audio stumm geschaltet wird, wenn die Wiedergabevorrichtung durch die Streaming-Vorrichtung 1440 gekapert wird. Wenn zum Beispiel die Streaming-Vorrichtung 1410 Live-Medien (z. B. Medien, die nicht pausiert werden können, ein Live-Sportereignis usw.) streamt, kann die Streaming-Vorrichtung 1410 Videodaten entsprechend den Live-Medien weiter präsentieren oder streamen, während der Stream von Audiodaten unterbrochen wird, wenn eine Wiedergabevorrichtung von der Streaming-Vorrichtung 1410 weg gekapert wird.
  • In einigen Implementierungen kann eine Wiedergabevorrichtung 1420 verhindern, dass eine Streaming-Vorrichtung 1440 eine Verbindung zu der Wiedergabevorrichtung 1420 kapert. Beispielsweise kann die Wiedergabevorrichtung 1420 von der Streaming-Vorrichtung 1410 Informationen empfangen, die den Typ des Medienelements angeben, das von der Streaming-Vorrichtung 1410 zu der Wiedergabevorrichtung 1420 gestreamt wird. Wenn das Medienelement von einem bestimmten Typ ist (z. B. ein Film), kann die Wiedergabevorrichtung 1420 eine Streaming-Medienverbindung verweigern, die von einer anderen Streaming-Vorrichtung (z. B. Streaming-Vorrichtung 1440) angefordert wird. Somit können der oder die Benutzer der Streaming-Vorrichtung 1410 das von der Streaming-Vorrichtung 1410 wiedergegebene Medienelement (z. B. Film) weiterhin ununterbrochen genießen. Die Wiedergabevorrichtung 1420 kann eine Benachrichtigung an die Streaming-Vorrichtung 1440 senden, die den Grund für die verweigerte Verbindung anzeigt. Die Streaming-Vorrichtung 1440 kann dann eine Meldung anzeigen, die den Grund für die abgelehnte Verbindung auf einer Anzeige anzeigt, die der Streaming-Vorrichtung 1440 zugeordnet ist, oder über Lautsprecher (z. B. mit Sprache), die der Streaming-Vorrichtung 1440 zugeordnet sind.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1410 sich automatisch wieder mit der Wiedergabevorrichtung 1420 verbinden. So kann beispielsweise die Streaming-Vorrichtung 1410 konfiguriert werden, um die Verbindungen zu Wiedergabevorrichtungen, die in der letzten Medienroutingkonfiguration für die Wiedergabevorrichtung 1420, die im Routing-Manager 1412 gespeichert ist, identifiziert wurden, automatisch zu kapern. Wenn beispielsweise die Streaming-Vorrichtung 1410 Benutzereingaben empfängt, die anzeigen, dass die Streaming-Vorrichtung 1410 ein Medienelement präsentieren sollte, kann die Streaming-Vorrichtung 1410 die in der letzten (z. B. vorherigen) Medienroutingkonfiguration identifizierten Wiedergabevorrichtungen (z. B. Wiedergabevorrichtung 1420 und/oder Wiedergabevorrichtung 1430) bestimmen und die Medien-Streaming-Verbindungen an die Wiedergabevorrichtungen 1420 und 1430 zurück kapern. So kann beispielsweise die Streaming-Vorrichtung 1410 die Verbindung zur Wiedergabevorrichtung 1420 zurück kapern, wodurch die Streaming-Verbindung 1406 hergestellt und die Verbindung 1442 zwischen der Streaming-Vorrichtung 1440 und der Wiedergabevorrichtung 1420 beendet wird, wie durch die gestrichelte Linie 1444 dargestellt.
  • In einigen Implementierungen kann dieser automatische Kapermechanismus durch eine Gruppe von Streaming-Vorrichtungen 1410 implementiert werden. Zum Beispiel kann eine dynamische Wiedergabegruppe erzeugt werden, die mehrere Streaming-Vorrichtungen 1410 einschließt. Jede Streaming-Vorrichtung 1410 kann konfiguriert sein, Mediendaten zu einem anderen Satz von Wiedergabevorrichtungen zu streamen. Wenn die Gruppe eine Eingabe empfängt, um das Darstellen eines Medienelements zu beginnen, kann jede Streaming-Vorrichtung 1410 (z. B. Video-Streaming-Vorrichtungen) ihre jeweiligen letzten Wiedergabevorrichtungen zurück kapern und das Medienelement präsentieren. Ein Beispiel dafür könnte eine Multi-TV-Umgebung (z. B. Sport-Bar, Haus mit mehreren Fernsehgeräten usw.) einschließen, wobei jede Streaming-Vorrichtung 1410 gleichzeitig Video für das Medienelement auf jeweiligen Fernsehgeräten dargestellt, während die Audioausgabe für das Medienelement an drahtlose Lautsprecher (z. B. Wiedergabevorrichtungen) streamt.
  • Dynamisches Medienrouting
  • 15 ist ein Blockdiagramm eines beispielhaften Mediensystems 1500, das konfiguriert ist, um Mediendaten dynamisch zu Wiedergabevorrichtungen zu routen. Beispielsweise kann das Mediensystem 1500 dem oben beschriebenen Mediensystem 1400 entsprechen. In einigen Implementierungen kann das Mediensystem 1500 konfiguriert sein, um dynamisch Mediendaten (z. B. Audiodaten, Videodaten usw.) auf der Grundlage von Kontexten von Mediendatenquellen an Wiedergabevorrichtungen zu routen.
  • In einigen Implementierungen kann das Mediensystem 1500 die Streaming-Vorrichtung 1502 enthalten. Beispielsweise kann die Streaming-Vorrichtung 1502 der Streaming-Vorrichtung 510 und/oder der Wiedergabevorrichtung 320 entsprechen, die oben beschrieben sind. Zum Beispiel kann in einigen Fällen die Streaming-Vorrichtung 1502 eine Wiedergabevorrichtung 320 sein, die die Medien-Streaming-Funktionen durchführt, die mit Bezug auf die Streaming-Vorrichtung 510 beschrieben sind.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1502 den Routing-Manager 1504 einschließen. Zum Beispiel kann der Routing-Manager 1504 dem oben beschriebenen Session-Manager 330 entsprechen. Der Routing-Manager 1504 kann ein Repository von Routinginformationen verwalten, die verfügbare Wiedergabevorrichtungen (z. B. Wiedergabevorrichtungen 1420, 1430 usw.), aktuelle Verbindungen zwischen der Streaming-Vorrichtung 1410 und anderen Vorrichtungen, vorherige Verbindungen zwischen der Streaming-Vorrichtung 1410 und anderen Vorrichtungen und/oder Wiedergabegruppenkonfigurationen (z. B. welche Wiedergabevorrichtungen sich in welchem Raum eines Hauses befinden, welche Wiedergabevorrichtungen sich in welchen dynamischen und/oder persistenten Wiedergabegruppen befinden usw.) beschreiben. Der Routing-Manager 1504 kann mit Regeln konfiguriert werden, die festlegen, wie Mediendaten basierend auf Kontexten von Mediendatenquellen, Verbindungen zu Wiedergabevorrichtungen, dem Typ der Wiedergabevorrichtung, die mit der Streaming-Vorrichtung 1502 verbunden ist, und/oder anderen Kriterien zu routen sind.
  • In einigen Implementierungen kann der Routing-Manager 1504 konfiguriert sein, um Mediendaten basierend auf dem Medienkontext 1506 und/oder dem Systemkontext 1508 zu routen. So können beispielsweise Mediendatenquellen, die Medienelementen entsprechen, wie Musik, Filme, Fernsehsendungen, Podcasts, Hörbücher usw., dem Medienkontext 1506 entsprechen. Mediendatenquellen, die Software entsprechen (z. B. Softwareanwendungen, die Töne erzeugen, Spielanwendungen, Betriebssystem usw.) können dem Systemkontext 1508 entsprechen. Anders ausgedrückt, können wahre Medienelemente (z. B. Mediendateien, Medienelemente, Filme, Musik usw.) dem Medienkontext entsprechen, während Mediendaten, die von Software und/oder Hardware erzeugt werden (z. B. getrennt von Medienelementen), dem Systemkontext 1508 entsprechen können.
  • In einigen Implementierungen kann der Routing-Manager 1504 Mediendaten entsprechend dem Medienkontext 1506 an Wiedergabevorrichtungen und/oder Wiedergabegruppen leiten, während Mediendaten entsprechend dem Systemkontext 1508 lokal auf oder durch die Streaming-Vorrichtung 1502 dargestellt werden. Zum Beispiel kann ein Benutzer eine Eingabe an die Streaming-Vorrichtung 1502 liefern, die anzeigt, dass die Streaming-Vorrichtung 1502 Mediendaten zu der Wiedergabegruppe 1510 streamen soll. Beispielsweise kann die Wiedergabegruppe 1510 (z. B. dynamische Wiedergabegruppe, persistente Wiedergabegruppe usw.) die Wiedergabevorrichtung 1520 und/oder die Wiedergabevorrichtung 1530 enthalten. Der Routing-Manager 1504 kann einen Kontext (z. B. Medienkontext 1506, Systemkontext 1508) für Mediendaten bestimmen, die von der Streaming-Vorrichtung 1502 erzeugt werden, und die Mediendaten auf der Grundlage des Kontexts an die Wiedergabegruppe 1510 routen. So kann beispielsweise der Routing-Manager 1502 Mediendaten, die dem Medienkontext 1506 entsprechen, an die Wiedergabegruppe 1510 streamen, während er Mediendaten, die dem Systemkontext 1508 entsprechen, lokal durch eine Streaming-Vorrichtung 1502 oder durch eine persönliche Wiedergabevorrichtung (z. B. ein Headset, einen kleinen persönlichen Lautsprecher, einen kleinen persönlichen Bildschirm usw.) präsentiert, die mit der Streaming-Vorrichtung 1502 verbunden ist. Während beispielsweise die Streaming-Vorrichtung 1502 Audio für einen Film in die Wiedergabegruppe 1510 für die Darstellung streamt, können die von der Streaming-Vorrichtung 1502 erzeugten Eingabe-Töne (z. B. Klicks) des Betriebssystems durch die Streaming-Vorrichtung 1502 dargestellt werden. Wenn die Streaming-Vorrichtung 1502 Teil einer persistenten Wiedergabegruppe ist (z. B. als eine logische Vorrichtung betrachtet), dann können Mediendaten, die dem Systemkontext 1508 entsprechen, von jeder Vorrichtung in der persistenten Wiedergabegruppe dargestellt werden.
  • In einigen Implementierungen kann das Mediensystem 1500 die Headset-Vorrichtung 1540 einschließen. Zum Beispiel kann die Headset-Vorrichtung 1540 eine bestimmte Art von Wiedergabevorrichtung 320 sein. Die Headset-Vorrichtung 1540 kann beispielsweise eine persönliche Wiedergabevorrichtung sein, die auf oder in den Ohren eines Benutzers der Streaming-Vorrichtung 1502 getragen wird. Der Routing-Manager 1504 kann basierend auf dem Typ der Wiedergabevorrichtung (z. B. Headset, Lautsprecher usw.), die mit der Streaming-Vorrichtung 1502 verbunden ist, bestimmen, wie Mediendaten, die dem Medienkontext 1506 und/oder dem Systemkontext 1508 entsprechen, zu routen sind. Zum Beispiel kann der Routing-Manager 1504 spezielle Routingregeln für Headset-Wiedergabevorrichtungen implementieren, wie unten beschrieben.
  • In einigen Implementierungen kann der Routing-Manager 1504 Mediendaten, die dem Systemkontext 1508 entsprechen, an die Headset-Vorrichtung 1540 senden. Wenn beispielsweise die Streaming-Vorrichtung 1502 eine persönliche Vorrichtung (z. B. eine einzelne Benutzervorrichtung, ein Smartphone, eine Smartwatch usw.) ist, dann kann der Routing-Manager 1504 Mediendaten, die dem Systemkontext 1508 entsprechen, an die Headset-Vorrichtung 1540 routen (z. B. senden), wenn die Headset-Vorrichtung 1540 mit der Streaming-Vorrichtung 1502 verbunden ist.
  • In einigen Implementierungen kann der Routing-Manager 1504 Mediendaten, die dem Medienkontext 1506 entsprechen, an die Headset-Vorrichtung 1540 senden. Wenn beispielsweise die Streaming-Vorrichtung 1502 eine öffentliche Vorrichtung (z. B. eine Set-Top-Box, ein Smart-Lautsprecher usw.) ist, dann kann der Routing-Manager 1504 Mediendaten, die dem Medienkontext 1506 entsprechen, an die Headset-Vorrichtung 1540 routen (z. B. senden), wenn die Headset-Vorrichtung 1540 mit der Streaming-Vorrichtung 1502 verbunden ist. Als ein spezielles Beispiel kann die Streaming-Vorrichtung 1502 Audio für einen Film an die Wiedergabegruppe 1510 streamen. Wenn der Benutzer die Headset-Vorrichtung 1540 mit der Streaming-Vorrichtung 1502 verbindet, kann der Routing-Manager 1504 das Routing für das Film-Audio automatisch so ändern, dass die Headset-Vorrichtung 1540 das Film-Audio empfängt und präsentiert und die Wiedergabegruppe 1510 nicht mehr das Film-Audio empfängt und/oder präsentiert. Wenn der Benutzer später das Headset 1540 von der Streaming-Vorrichtung 1502 trennt, kann der Routing-Manager 1504 das Streaming der Mediendaten, die dem Medienkontext 1506 entsprechen, an die Wiedergabegruppe 1520 fortsetzen.
  • In einigen Implementierungen kann der Routing-Manager 1502 mit zeitbasierten Regeln zum Routen von Mediendaten konfiguriert werden. So kann beispielsweise die Streaming-Vorrichtung 1502 mit einem Zeitraum für die Zuordnung von Wiedergabevorrichtungen/Wiedergabegruppen konfiguriert werden, der definiert, zu welchen Wiedergabevorrichtungen Mediendaten zu den entsprechenden Tageszeiten geroutet werden sollen. In einem bestimmten Beispiel kann der Routing-Manager 1504 mit einer Tag-Routing-Konfiguration und einer Nacht-Routing-Konfiguration (z. B. 20 - 9 Uhr) konfiguriert werden. Die Tag-Routing-Konfiguration kann festlegen, dass während des Tageszeitraums (z. B. 9 - 20 Uhr) Mediendaten, die von der Streaming-Vorrichtung 1502 übertragen werden, an eine 5.1-Surround-Sound-Lautsprechergruppe (z. B. dynamische Wiedergabegruppe, persistente Wiedergabegruppe usw.) geroutet werden. Die Nacht-Routing-Konfiguration kann festlegen, dass während der Nachtzeit (z.B. 20-9 Uhr) Mediendaten, die von der Streaming-Vorrichtung 1502 gestreamt werden, an eine einzelne Wiedergabevorrichtung oder eine kleine Gruppe von Wiedergabevorrichtungen (z. B. Stereopaar, dynamische Wiedergabegruppe, persistente Wiedergabegruppe usw.) geroutet werden sollen. Die Tag- und/oder Nacht-Routing-Konfiguration kann andere Wiedergabeparameter spezifizieren, einschließlich Audiolautstärke für die Wiedergabevorrichtungen (z. B. höhere Lautstärke während der Tageszeit, niedrigere Lautstärke während der Nachtzeit).
  • 16 ist ein Blockdiagramm eines beispielhaften Mediensystems 1600 zum dynamischen Routing basierend auf Wiedergabevorrichtungsfähigkeiten. Beispielsweise kann das Mediensystem 1600 dem oben beschriebenen Mediensystem 1500 entsprechen. Das Mediensystem 1600 kann konfiguriert sein, um Mediendaten auf der Grundlage der Fähigkeiten der jeweiligen Wiedergabevorrichtungen dynamisch an Wiedergabevorrichtungen weiterzuleiten. Beispielsweise kann die Streaming-Vorrichtung 1502 das Routen von Mediendaten basierend auf den Wiedergabefunktionen von Wiedergabevorrichtungen bestimmen, wenn Mediendaten an eine Wiedergabegruppe (z. B. Wiedergabegruppe 1630) gestreamt werden. Alternativ kann die primäre Wiedergabevorrichtung (z. B. Gruppenleiter) in einer Wiedergabegruppe bestimmen, wie Mediendaten, die von der Wiedergabegruppe empfangen werden, basierend auf den Fähigkeiten von Wiedergabevorrichtungen in einer Wiedergabegruppe zu routen sind.
  • In einigen Implementierungen kann das Mediensystem 1600 die Wiedergabegruppe 1630 einschließen. Beispielsweise kann die Wiedergabegruppe 1630 eine dynamische oder persistente Wiedergabegruppe sein. Die Wiedergabegruppe 1630 kann die Wiedergabevorrichtung 1640, die Wiedergabevorrichtung 1650 und/oder die Wiedergabevorrichtung 1660 einschließen. Jede Wiedergabevorrichtung kann unterschiedliche Fähigkeiten aufweisen. So kann beispielsweise die Wiedergabevorrichtung 1640 die Audioausgabe 1642 (z. B. an Lautsprecher) und die Videoausgabe 1644 (z. B. an eine Anzeige) ermöglichen, während die Wiedergabevorrichtungen 1650 und/oder 1660 die Audioausgabe 1652 und 1654, nicht aber die Videoausgabe ermöglichen. Zum Beispiel können die Fähigkeiten jeder Wiedergabevorrichtung an die Vorrichtungen der Wiedergabegruppe 1630 und/oder der Streaming-Vorrichtung 1502 gemeldet oder übertragen werden. Wenn also die Streaming-Vorrichtung 1502 ein Medienelement streamt, das Audio- und Videodaten einschließt, kann die Streaming-Vorrichtung 1502 die Wiedergabefunktionen jeder Vorrichtung bestimmen und die Mediendaten für das Medienelement entsprechend routen. So kann beispielsweise die Streaming-Vorrichtung 1502 Audio- und Videomediendaten an die Wiedergabevorrichtung 1640 senden, während sie nur Audiomediendaten an die Wiedergabevorrichtungen 1650 und 1660 sendet.
  • Alternativ kann die Streaming-Vorrichtung 1502 Audio- und Videomediendaten für das Medienelement an die primäre Vorrichtung in der Wiedergabegruppe 1630 senden. Wenn die primäre Vorrichtung (z. B. die Wiedergabevorrichtung 1650) die Audio- und Videomediendaten empfängt, kann die primäre Vorrichtung die Wiedergabefunktionen jeder Vorrichtung in der Wiedergabegruppe 1630 bestimmen und die Mediendaten für das Medienelement entsprechend routen. So kann beispielsweise die Wiedergabevorrichtung 1650 (z. B. die primäre Vorrichtung) die Audiodaten für das Medienelement darstellen und Audio- und Videomediendaten an die Wiedergabevorrichtung 1640 senden, während nur Audiomediendaten an die Wiedergabevorrichtungen 1660 gesendet werden.
  • In einigen Implementierungen kann jede Wiedergabevorrichtung in der Wiedergabegruppe 1630 bestimmen, wie empfangene Mediendaten auf der Grundlage der Funktionen jeder Vorrichtung zu verarbeiten sind. Zum Beispiel kann jede Wiedergabevorrichtung in der Wiedergabegruppe 1630 alle Mediendaten (z. B. Audio und/oder Video) für das durch die Streaming-Vorrichtung 1502 gestreamte Medienelement empfangen. Jede Vorrichtung kann die empfangenen Audiomediendaten und/oder Videomediendaten basierend auf den Funktionen jeder Vorrichtung präsentieren oder nicht präsentieren. Außerdem kann eine Wiedergabevorrichtung basierend auf den empfangenen Mediendaten bestimmen, welche Medienpräsentation-Subsysteme der Wiedergabevorrichtung freizugeben sind. Beispielsweise kann die Wiedergabevorrichtung 1640 für die Audioausgabe 1642 und die Videoausgabe 1644 konfiguriert sein. Wenn die Wiedergabevorrichtung 1640 Mediendaten empfängt, die Audio- und keine Videodaten enthalten, kann die Wiedergabevorrichtung 1640 die Audiodaten darstellen und die Videoausgabe deaktivieren. So kann beispielsweise die Wiedergabevorrichtung 1640 eine Audioausgabe über Lautsprecher bereitstellen, die an die Wiedergabevorrichtung 1640 angeschlossen sind, während eine angeschlossene Anzeige ausgeschaltet bleibt.
  • 17 ist ein Blockdiagramm eines beispielhaften Mediensystems 1700 zum Bereitstellen eines Zugriffs auf Mediendaten in einer zweiten Sprache. Beispielsweise kann das System 1700 dem oben beschriebenen Mediensystem 1500 entsprechen.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1502 ein Medienelement präsentieren, während sie Audiodaten für das Medienelement an die Wiedergabegruppe 1710 streamt. Jede Wiedergabevorrichtung (z. B. Wiedergabevorrichtung 1720, Wiedergabevorrichtung 1730 usw.) in der Wiedergabegruppe 1710 (z. B. dynamische Gruppe, persistente Gruppe usw.) kann die Audioausgabe 1722, 1732 gemäß einer Sprache (z. B. Englisch) darstellen, die in oder durch die Streaming-Vorrichtung 1502 konfiguriert ist.
  • In einigen Implementierungen kann das Medienelement zusätzliche Audiodaten einschließen, die einen Dialog in verschiedenen Sprachen ermöglichen. Zum Beispiel kann das Medienelement (z. B. ein Film) Dialogspuren (z. B. entsprechend Sprachübersetzungen für den Dialog in dem Film) in verschiedenen Sprachen (z. B. Französisch, Chinesisch, Vietnamesisch, usw.) einschließen.
  • In einigen Implementierungen kann der Routing-Manager 1504 Dialogspuren zu Benutzervorrichtungen auf der Basis von Sprachen routen, die durch die Benutzervorrichtungen spezifiziert sind. Beispielsweise kann das Mediensystem 1700 die Benutzervorrichtung 1750 (z. B. ein Smartphone, einen Tablet-Computer usw.) einschließen. Die Benutzervorrichtung 1750 kann konfiguriert werden, um einem Benutzer Daten in einer Sprache (z. B. Zweitsprache) darzustellen, die sich von der in der Streaming-Vorrichtung 1502 konfigurierten Präsentationssprache unterscheidet. Während beispielsweise die Streaming-Vorrichtung 1502 konfiguriert ist, um Informationen und/oder Medienelemente auf Englisch darzustellen, kann die Benutzervorrichtung 1750 konfiguriert werden, um Informationen und/oder Medienelemente auf Chinesisch darzustellen.
  • Ein Benutzer (z. B. Chinesisch sprechender Benutzer) der Benutzervorrichtung 1750 kann eine Eingabe bereitstellen, um die Benutzervorrichtung 1750 mit der Streaming-Vorrichtung 1504 zu verbinden. Wenn sie zum Beispiel mit der Streaming-Vorrichtung 1502 verbunden ist, kann die Benutzervorrichtung 1750 Informationen, die die Präsentationssprache (z. B. Chinesisch) der Benutzervorrichtung 1750 spezifizieren, an die Streaming-Vorrichtung 1504 senden. Wenn die Sprachspezifikation für die Benutzervorrichtung 1750 von der Streaming-Vorrichtung 1502 empfangen wird, kann der Routing-Manager 1503 Routing-Daten erzeugen, die anzeigen, dass chinesischsprachige Mediendaten (z.B. chinesische Dialogspur für den Film) an die Benutzervorrichtung 1750 geroutet werden sollen. Während also die Streaming-Vorrichtung 1502 und/oder die Wiedergabegruppe 1710 das Medienelement in der ersten Sprache (z. B. Englisch) präsentieren, kann die Streaming-Vorrichtung 1502 die Mediendaten (z. B. Dialogspur in chinesischer Sprache), die der zweiten Sprache der Benutzervorrichtung 1750 entsprechen, an die Benutzervorrichtung 1750 streamen.
  • In einigen Implementierungen kann das Mediensystem 1700 die Wiedergabevorrichtung 1740 einschließen. Zum Beispiel kann die Wiedergabevorrichtung 1740 ein Headset, Lautsprecher oder eine andere Audioausgabevorrichtung sein, die Audioausgabe 1742 bereitstellt. Der Benutzer der Benutzervorrichtung 1750 kann die Wiedergabevorrichtung 1740 mit der Benutzervorrichtung 1750 verbinden, so dass die durch die Benutzervorrichtung 1750 von der Streaming-Vorrichtung 1502 empfangene zweite Sprachmedienspur von der Wiedergabevorrichtung 1740 dargestellt werden kann. Zum Beispiel kann der Chinesisch sprechende Benutzer ein Headset (Wiedergabevorrichtung 1740) tragen, das einen Dialog für einen Film in Chinesisch präsentiert, während er den von der Streaming-Vorrichtung 1502 auf einem Fernseher präsentierten Film betrachtet, während andere Benutzer den in Englisch durch die Wiedergabegruppe 1710 präsentierten Filmdialog hören.
  • Schnittstelle für künstliche Intelligenz
  • In einigen Implementierungen können die hierin beschriebenen Mediensysteme konfiguriert sein, um eine Schnittstelle für künstliche Intelligenz bereitzustellen, die gesprochene Spracheingaben verarbeiten kann, die von einem Benutzer der Mediensysteme geliefert werden. So kann beispielsweise die KI-Schnittstelle (Künstliche Intelligenz) festlegen, wie medienbezogene Eingabebefehle basierend auf der Art des Medienelements, den Wiedergabegruppen (z. B. dynamische Wiedergabegruppen, persistente Wiedergabegruppen usw.) und/oder den spezifischen Wiedergabevorrichtungen, die in der Spracheingabe des Benutzers angegeben sind, verarbeitet werden sollen. Zum Beispiel kann die gesprochene Spracheingabe durch eine Streaming-Vorrichtung (z. B. Streaming-Vorrichtung 1502) über eine KI-Schnittstelle der Streaming-Vorrichtung empfangen werden.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1502 einen Spracheingabebefehl empfangen, um überall ein Medienelement wiederzugeben. Zum Beispiel kann „überall“ alle Wiedergabevorrichtungen einschließen, die mit einer Netzwerkumgebung (z. B. Home, Arbeit usw.) verbunden sind oder einer Umgebung (z. B. Home, Arbeit usw.) zugeordnet sind, die in der Home-Anwendung 332 konfiguriert ist. In einigen Implementierungen kann „überall“ alle Wiedergabevorrichtungen einschließen, für die der Routing-Manager 1504 Verbindungs- und/oder Routinginformationen hat. Wenn die Streaming-Vorrichtung 1502 den Befehl „überall wiedergeben“ in Bezug auf ein Medienelement empfängt, kann der Routing-Manager 1504 bestimmen, wie das Medienelement auf der Basis des Medienelementtyps zu routen ist. Wenn zum Beispiel das Medienelement ein Audio-Medienelement ist (z. B. Musik, Hörbuch, Podcast usw.), dann kann der Routing-Manager 1504 das Audio-Medienelement zu allen Wiedergabevorrichtungen streamen, die zur Audioausgabe fähig sind, wie oben beschrieben.
  • Alternativ kann, wenn das Medienelement ein Audio-Medienelement (z. B. Musik, Hörbuch, Podcast usw.) ist, der Routing-Manager 1504 das Audio-Medienelement nur zu Wiedergabevorrichtungen streamen, die nur zur Audioausgabe fähig sind. Wenn das Medienelement ein Audio/Video-Medienelement (z. B. Film, Fernsehsendung usw.) ist, dann kann der Routing-Manager 1504 das Audio-Medienelement zu allen Wiedergabevorrichtungen routen, die zur Audioausgabe oder Videoausgabe fähig sind, wie oben beschrieben.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1502 einen Spracheingabebefehl empfangen, um ein Medienelement an eine Wiedergabegruppe oder Wiedergabegruppen zu spielen. Wenn beispielsweise die Streaming-Vorrichtung 1502 einen Sprachbefehl „Spiel zur Gruppe“ empfängt, kann der Routing-Manager 1504 die Wiedergabevorrichtungen, die der in dem Sprachbefehl identifizierten Wiedergabegruppe zugeordnet sind, auf der Grundlage der auf der Streaming-Vorrichtung 1504 gespeicherten Wiedergabegruppendaten bestimmen. Beispielsweise kann die Wiedergabegruppe einer dynamischen Gruppe, einer persistenten Gruppe, einer Raumgruppe oder jeder anderen Art von konfigurierter Gruppe entsprechen. Die Streaming-Vorrichtung 1502 kann dann das in dem Spracheingabebefehl identifizierte Medienelement zu der spezifizierten Gruppe streamen. In einigen Implementierungen kann der Routing-Manager 1504 das Medienelement zu den Wiedergabevorrichtungen in der spezifizierten Gruppe basierend auf den Ausgabefähigkeiten der Wiedergabevorrichtungen streamen, wie oben beschrieben.
  • In einigen Implementierungen kann die Streaming-Vorrichtung 1502 einen Spracheingabebefehl empfangen, um ein Medienelement an bestimmte Typen von Vorrichtungen abzuspielen. Beispielsweise können die verschiedenen Arten von Vorrichtungen Set-Top-Boxen, Smart-Lautsprecher, spezifische Modelle von Vorrichtungen usw. einschließen. Der Spracheingabebefehl kann spezifizieren, dass die Streaming-Vorrichtung 1502 das Medienelement beispielsweise an alle Set-Top-Boxen oder alle Streaming-Vorrichtungen senden soll. Wenn die Streaming-Vorrichtung 1502 den Spracheingabebefehl empfängt, kann der Routing-Manager 1504 bestimmen, welche Wiedergabevorrichtungen dem spezifizierten Typ von Vorrichtung entsprechen und das in dem Spracheingabebefehl identifizierte Medienelement zu den Wiedergabevorrichtungen des spezifizierten Typs streamen.
  • Beispielprozesse
  • Um dem Leser ein klares Verständnis der hierin beschriebenen technologischen Konzepte zu ermöglichen, beschreiben die folgenden Prozesse bestimmte Schritte, die in einer bestimmten Reihenfolge durchgeführt werden. Jedoch kann einer oder mehrere der Schritte eines bestimmten Prozesses neu angeordnet und/oder weggelassen werden, ohne dass der beabsichtigte Umfang der hierin offenbarten Technologie überschritten wird. Darüber hinaus können verschiedene Prozesse und/oder Schritte davon kombiniert, rekombiniert, neu angeordnet, weggelassen und/oder parallel ausgeführt werden, um unterschiedliche Prozessabläufe zu erzeugen, die auch im Rahmen der hierin offenbarten Technologie liegen.
  • Während außerdem die folgenden Prozesse aus Gründen der Übersichtlichkeit einige der Details der hierin offenbarten Technologien weglassen oder kurz zusammenfassen können, können die in den obigen Abschnitten beschriebenen Details mit den nachfolgend beschriebenen Prozessschritten kombiniert werden, um ein vollständigeres und umfassenderes Verständnis dieser Prozesse und der hierin offenbarten Technologien zu erhalten.
  • 18 ist ein Flussdiagramm eines beispielhaften Prozesses 1800 zum Fernsteuern einer Wiedergabevorrichtung. Beispielsweise kann der Prozess 1800 durch eine Wiedergabevorrichtung durchgeführt werden, um es einer Fernsteuervorrichtung zu ermöglichen, Fernsteuerbefehle über eine Steuerverbindung bereitzustellen, während die Wiedergabevorrichtung eine aktive Streaming-Verbindung (z. B. Masterverbindung) mit einer Streaming-Vorrichtung aufrechterhält. Die Fernsteuerverbindung und die Masterverbindung können separate Verbindungen sein, die eine separate Funktionalität aufweisen. Zum Beispiel kann die Fernsteuerverbindung verwendet werden, um Befehle von Fernsteuervorrichtungen zu empfangen und/oder Statusinformationen zu den Fernsteuervorrichtungen zu senden, ohne die Masterverbindung zu unterbrechen, zu beeinträchtigen oder zu kapern. Die Masterverbindung kann verwendet werden, um Streaming-Mediendaten von der Streaming-Vorrichtung zu empfangen und/oder mit der Streaming-Vorrichtung zu kommunizieren.
  • In Schritt 1802 kann die Wiedergabevorrichtung eine Masterverbindung zwischen der Wiedergabevorrichtung und der Streaming-Vorrichtung herstellen. Zum Beispiel kann die Wiedergabevorrichtung eine Nachricht, die ihre Verfügbarkeit ankündigt, an andere Vorrichtungen senden. Die Nachricht kann Daten einschließen, die empfangende Vorrichtungen (z. B. Streaming-Vorrichtung) verwenden können, um mit der Wiedergabevorrichtung verbunden zu werden. Die Nachricht kann beispielsweise eine Vorrichtungskennung für die Wiedergabevorrichtung einschließen, die von der Streaming-Vorrichtung verwendet werden kann, um eine Verbindung mit der Wiedergabevorrichtung über ein lokales Netzwerk, ein WLAN-Netzwerk oder ein anderes Netzwerk herzustellen, mit dem sowohl die Wiedergabevorrichtung als auch die Streaming-Vorrichtung verbunden sind. Wenn die Streaming-Vorrichtung die Ankündigung empfängt, kann die Streaming-Vorrichtung eine grafische Benutzerschnittstelle präsentieren, die die Wiedergabevorrichtung identifiziert. Der Benutzer der Streaming-Vorrichtung kann dann die Wiedergabevorrichtung als die Wiedergabevorrichtung für ein ausgewähltes Medienelement oder andere Mediendaten auswählen. Nachdem der Benutzer die Auswahl der Wiedergabevorrichtung erhalten hat, kann die Streaming-Vorrichtung mit der Wiedergabevorrichtung kommunizieren, um die Masterverbindung herzustellen. Da die gleichzeitige Wiedergabe mehrerer Medienelemente auf der Wiedergabevorrichtung für den Benutzer ein unangenehmes Erlebnis darstellen würde, kann die Wiedergabevorrichtung jeweils nur eine einzige Masterverbindung verwalten.
  • In Schritt 1804 kann die Wiedergabevorrichtung ein Medienelement von der Streaming-Vorrichtung über die Masterverbindung empfangen. Beispielsweise kann die Streaming-Vorrichtung das Medienelement über die Masterverbindung zu der Wiedergabevorrichtung streamen, das gesamte Medienelement über die Masterverbindung senden oder über die Masterverbindung ein Verweis (z. B. Link, URL, usw.) an das Medienelement senden. Wenn diese Spezifikation das Senden oder Streamen von Medienelementen von einer Streaming-Vorrichtung an eine Wiedergabevorrichtung beschreibt, kann das Senden oder Streamen durchgeführt werden, indem das Medienelement über die Masterverbindung an die Wiedergabevorrichtung gestreamt, das gesamte Medienelement über die Masterverbindung gesendet oder ein Verweis (z.B. Link, URL, etc.) auf das Medienelement gesendet wird, das die Wiedergabevorrichtung verwenden kann, um das Medienelement zu erhalten. Alternativ kann die Streaming-Vorrichtung eine Kennung für das Medienelement über die Masterverbindung an die Wiedergabevorrichtung senden, und die Wiedergabevorrichtung kann das Medienelement von einer anderen Quelle (z. B. einer Netzwerkquelle, lokal aus einer Speicherung auf der Wiedergabevorrichtung usw.) erhalten.
  • In Schritt 1806 kann die Wiedergabevorrichtung das Medienelement an der Wiedergabevorrichtung darstellen. Wenn es sich bei dem Medienelement beispielsweise um ein Audio-Medienelement (z. B. Musik) handelt, kann die Wiedergabevorrichtung das Audio-Medienelement über Lautsprecher der Wiedergabevorrichtung wiedergeben. Wenn es sich bei dem Medienelement beispielsweise um ein Video-Medienelement handelt, kann die Wiedergabevorrichtung das Medienelement unter Verwendung einer Anzeige der Wiedergabevorrichtung wiedergeben.
  • In Schritt 1808 kann die Wiedergabevorrichtung eine Steuerverbindung zwischen der Wiedergabevorrichtung und einer Fernsteuervorrichtung herstellen. Zum Beispiel kann die Fernsteuervorrichtung die Ankündigungsnachricht empfangen, die von der Wiedergabevorrichtung gesendet wird, wie oben beschrieben. Die Fernsteuervorrichtung kann die Daten in der Ankündigungsnachricht verwenden, um eine Nachricht an die Wiedergabevorrichtung zu senden, um eine Steuerverbindung einzurichten, die es der Fernsteuervorrichtung ermöglicht, Wiedergabestatusinformationen zu erhalten und/oder Befehle zu senden, die es der Fernsteuervorrichtung ermöglichen, die Wiedergabe eines Medienelements zu steuern, das durch die Wiedergabevorrichtung dargestellt wird. Da mehrere Fernsteuervorrichtungen Wiedergabestatusinformationen präsentieren können und Fernsteuerbefehle bereitstellen können, kann die Wiedergabevorrichtung mehrere Steuerverbindungen zu mehreren verschiedenen Fernsteuervorrichtungen verwalten. Darüber hinaus kann, da die Steuerverbindung keine Masterverbindung ist, die Steuerverbindung aufgebaut werden, ohne die Wiedergabe des gegenwärtig wiedergegebenen Medienelements zu unterbrechen und ohne die Masterverbindung zu stören oder zu kapern.
  • In Schritt 1810 kann die Wiedergabevorrichtung einen Medienbefehl von der Fernsteuervorrichtung über die Steuerverbindung empfangen. Beispielsweise kann der Medienbefehl eine Anforderung von Wiedergabestatusinformationen sein (z. B. Identifikation des aktuell wiedergegebenen Medienelements, der Position der Wiedergabe in dem Medienelement, aktueller Lautstärkepegel, von der das Medienelement präsentierenden Anwendung unterstützte Funktionen, Fähigkeiten der Wiedergabevorrichtung usw.). Der Medienbefehl kann ein Wiedergabesteuerbefehl sein, der stoppt, startet, überspringt, vorspult, zurückspult, die Lautstärke einstellt oder eine andere Änderung der Wiedergabe des gegenwärtig wiedergegebenen Medienelements anordnet.
  • In Schritt 1812 kann die Wiedergabevorrichtung den Medienbefehl verarbeiten. Beispielsweise kann die Wiedergabevorrichtung den Medienbefehl verarbeiten, indem sie den Medienbefehl lokal an der Wiedergabevorrichtung ausführt. Zum Beispiel können Wiedergabe-Stoppbefehle, Statusanforderungen usw. lokal an der Wiedergabevorrichtung ausgeführt werden. Alternativ kann die Wiedergabevorrichtung den Medienbefehl durch Weiterleiten des Medienbefehls an die Streaming-Vorrichtung über die Masterverbindung verarbeiten. Da zum Beispiel die Streaming-Vorrichtung die Quelle des Medienelements ist, verwaltet die Streaming-Vorrichtung die Wiedergabe des Medienelements und muss möglicherweise die Wiedergabe über mehrere Wiedergabevorrichtungen koordinieren. Somit kann die Wiedergabevorrichtung den Medienbefehl (z. B. Statusanforderung, Überspringbefehl, Vorspulbefehl, Pausebefehl, Lautstärkeeinstellungen usw.) an die Streaming-Vorrichtung weiterleiten, so dass die Streaming-Vorrichtung den Medienbefehl verarbeiten und entsprechende Einstellungen an den Wiedergabevorrichtungen vornehmen kann, die das Medienelement präsentieren.
  • 19 ist ein Flussdiagramm eines beispielhaften Prozesses 1900 zum Verwalten von Wiedergabegruppen. Beispielsweise kann ein Prozess 1900 von einer Rechenvorrichtung (z. B. einer Fernsteuervorrichtung, einer Streaming-Vorrichtung usw.) durchgeführt werden, um Gruppierungen von Wiedergabevorrichtungen basierend auf Wiedergabevorrichtungsattributen zu bestimmen, die von verschiedenen Wiedergabevorrichtungen empfangen werden. Nachdem die Wiedergabevorrichtungsgruppen ermittelt wurden, kann die Rechenvorrichtung die Wiedergabevorrichtungsgruppen auf einer Anzeige der Rechenvorrichtung darstellen und der Benutzer der Rechenvorrichtung kann eine Wiedergabegruppe auswählen, an die Medienelemente zu streamen sind, so dass alle Wiedergabevorrichtungen in der ausgewählten Gruppe die vom Benutzer ausgewählten Medienelemente darstellen können.
  • In Schritt 1902 kann die Rechenvorrichtung Wiedergabegruppenattribute empfangen, die einer ersten Wiedergabevorrichtung entsprechen. Zum Beispiel kann die Rechenvorrichtung die Wiedergabegruppenattribute in einer Nachricht empfangen, die von der Wiedergabevorrichtung gesendet wird, die die Verfügbarkeit und/oder die Fähigkeiten der Wiedergabevorrichtung ankündigt. Die Wiedergabegruppenattribute können eine erste Wiedergabegruppenkennung einschließen. Zum Beispiel kann die erste Wiedergabegruppenkennung eine Kennung einer dynamischen Wiedergabegruppe sein. Die erste Wiedergabegruppenkennung kann eine Kennung für eine persistente Wiedergabegruppe sein. Die Wiedergabegruppenattribute können andere Attribute wie oben beschrieben einschließen.
  • In Schritt 1904 kann die Rechenvorrichtung Wiedergabegruppenattribute empfangen, die einer zweiten Wiedergabevorrichtung entsprechen. Zum Beispiel kann die Rechenvorrichtung die Wiedergabegruppenattribute in einer Nachricht empfangen, die von der Wiedergabevorrichtung gesendet wird, die die Verfügbarkeit und/oder die Fähigkeiten der Wiedergabevorrichtung ankündigt. Die Wiedergabegruppenattribute können eine zweite Wiedergabegruppenkennung einschließen. Zum Beispiel kann die zweite Wiedergabegruppenkennung eine Kennung einer dynamischen Wiedergabegruppe sein. Die zweite Wiedergabegruppenkennung kann eine Kennung für eine persistente Wiedergabegruppe sein. Die Wiedergabegruppenattribute können andere Attribute wie oben beschrieben einschließen.
  • In Schritt 1906 kann die Rechenvorrichtung bestimmen, dass die erste Wiedergabegruppenkennung der zweiten Wiedergabegruppenkennung entspricht. Zum Beispiel kann die Rechenvorrichtung die erste Wiedergabegruppenkennung mit der zweiten Wiedergabegruppenkennung vergleichen und bestimmen, dass die erste Wiedergabegruppenkennung und die zweite Wiedergabegruppenkennung identisch sind und dass die erste Wiedergabevorrichtung und die zweite Wiedergabevorrichtung zu derselben Wiedergabevorrichtungsgruppe gehören.
  • In Schritt 1908 kann die Rechenvorrichtung eine erste Wiedergabegruppe generieren, die die erste Wiedergabevorrichtung und die zweiten Wiedergabevorrichtung einschließt. Zum Beispiel, kann die Rechenvorrichtung Wiedergabegruppendaten speichern, die angeben, dass die erste Wiedergabevorrichtung und die zweite Wiedergabevorrichtung sich in der gleichen Wiedergabevorrichtungsgruppe befinden. Die Wiedergabegruppendaten können auch Informationen einschließen, die den Typ der Wiedergabegruppe (z. B. persistent, dynamisch) und/oder die Fähigkeiten der Wiedergabevorrichtungen in der Wiedergabegruppe identifizieren. In einigen Implementierungen kann eine einzelne Wiedergabevorrichtung zu mehreren dynamischen Wiedergabegruppen gehören. Somit kann die zweite Wiedergabevorrichtung Wiedergabegruppenattribute bereitstellen, die mehrere dynamische Wiedergabegruppen identifizieren. Darüber hinaus kann eine einzelne Wiedergabevorrichtung sowohl zu einer persistenten Wiedergabegruppe als auch zu einer dynamischen Wiedergabegruppe gehören. Beispielsweise kann die persistente Wiedergabegruppe, die die zweite Wiedergabevorrichtung einschließt, auch eine Wiedergabevorrichtung sein, die in einer dynamischen Wiedergabegruppe eingeschlossen ist, wie oben beschrieben. Somit kann die zweite Wiedergabevorrichtung Wiedergabegruppenattribute bereitstellen, die mehrere dynamische Wiedergabegruppen und eine einzelne persistente Wiedergabegruppe identifizieren.
  • In Schritt 1910 kann die Rechenvorrichtung die erste Wiedergabegruppe auf einer Anzeige der Rechenvorrichtung darstellen. Zum Beispiel kann die Rechenvorrichtung die erste Wiedergabevorrichtung und die zweite Wiedergabevorrichtung als eine einzige Einheit oder als eine einzige Vorrichtung auf einer Anzeige der Rechenvorrichtung darstellen. Dies ermöglicht es dem Benutzer, eine einzelne Gruppenauswahl durchzuführen, anstatt mehrere Wiedergabevorrichtungen auszuwählen, wenn der Benutzer wünscht, die Wiedergabe eines Medienelements an mehrere Wiedergabevorrichtungen zu senden. Wenn der Benutzer eine Wiedergabegruppe auswählt, kann die Rechenvorrichtung ein vom Benutzer ausgewähltes Medienelement an die Wiedergabegruppe senden (z. B. streamen), so dass jede Wiedergabevorrichtung in der ausgewählten Wiedergabegruppe das Medienelement synchron mit anderen Wiedergabevorrichtungen in derselben Wiedergabegruppe darstellen kann, wie oben beschrieben.
  • 20 ist ein Flussdiagramm eines beispielhaften Prozesses 2000 zum effizienten Koppeln autorisierter Benutzervorrichtungen mit einer Wiedergabevorrichtung. Beispielsweise kann der Prozess 2000 durch eine Benutzervorrichtung (z. B. eine Streaming-Vorrichtung, eine Fernsteuervorrichtung usw.) durchgeführt werden. Die Benutzervorrichtung kann zum Beispiel mit Vorrichtungskennungen (oder Benutzerkennungen) für Vorrichtungen konfiguriert sein, die autorisiert sind, auf Wiedergabevorrichtungen innerhalb einer Umgebung (z. B. Home-Umgebung, Büroumgebung, usw.) zuzugreifen oder mit Wiedergabevorrichtungen zu interagieren. Die Umgebung kann auf der Grundlage eines geografischen Gebiets definiert werden. Die Umgebung kann auf der Grundlage von Netzwerken definiert werden, die zur Verwaltung oder Interaktion mit Wiedergabevorrichtungen innerhalb einer Umgebung verwendet werden. Wenn die Benutzervorrichtung mit einer Wiedergabevorrichtung gekoppelt ist, kann die Benutzervorrichtung die autorisierten Vorrichtungskennungen an die Wiedergabevorrichtung senden, um die Wiedergabevorrichtung zu veranlassen, Kopplungstoken für die autorisierten Vorrichtungskennungen zu erzeugen. Somit kann die Benutzervorrichtung als Proxy für den Kopplungsprozess dienen und den Kopplungsprozess für die anderen autorisierten Benutzervorrichtungen durchführen.
  • In Schritt 2002 kann die Benutzervorrichtung Vorrichtungskennungen speichern, die autorisierten Rechenvorrichtungen entsprechen. So kann beispielsweise ein Administrator oder ein anderer autorisierter Benutzer der Umgebung Eingaben für die Benutzervorrichtung oder eine andere Rechenvorrichtung bereitstellen, um Benutzer und/oder Benutzervorrichtungen zu identifizieren, die zum Zugriff auf Wiedergabevorrichtungen innerhalb der Umgebung berechtigt sind. So kann beispielsweise der Administrator (z. B. ein Elternteil) in einer Home-Umgebung Eingaben für die Benutzervorrichtung bereitstellen, um andere Benutzer (z. B. Ehepartner, Kinder, Freunde usw.) zu identifizieren, denen der Zugriff auf Wiedergabevorrichtungen in der Heimumgebung gestattet werden soll. Die Benutzervorrichtung kann dann die Vorrichtungskennungen für die autorisierten Rechenvorrichtungen in einer Datenbank für autorisierte Benutzer auf der Benutzervorrichtung speichern. Diese Datenbank für autorisierte Benutzer oder einzelne Datensätze darin können gemeinsam genutzt oder mit den anderen autorisierten Rechenvorrichtungen synchronisiert werden.
  • In Schritt 2004 kann die Benutzervorrichtung veranlassen, dass die Benutzervorrichtung mit einer ersten Wiedergabevorrichtung gekoppelt wird. Zum Beispiel kann der Benutzer der Benutzervorrichtung (z. B. die erste Rechenvorrichtung) eine Eingabe an die Benutzervorrichtung liefern, die anzeigt, dass sich die Benutzervorrichtung mit der ersten Wiedergabevorrichtung verbinden oder damit koppeln sollte. Die Benutzervorrichtung und die erste Wiedergabevorrichtung können einen Kopplungsprozess durchführen, z. B. indem sie Benutzereingaben eines Kopplungscodes empfangen, um die Benutzervorrichtung und die erste Wiedergabevorrichtung zu koppeln. Wenn die Kopplung erfolgreich ist, kann die erste Wiedergabevorrichtung einen Kopplungstoken an die erste Wiedergabevorrichtung senden, mit dem die erste Wiedergabevorrichtung auf die Dienste und/oder Funktionen der ersten Wiedergabevorrichtung zugreifen kann, ohne den Kopplungsvorgang erneut durchführen zu müssen. Zum Beispiel kann die Benutzervorrichtung das Kopplungstoken in anschließende Anforderungen an die erste Wiedergabevorrichtung einschließen. Die erste Wiedergabevorrichtung kann, wie oben beschrieben, basierend auf dem Kopplungstoken bestimmen, dass die Benutzervorrichtung autorisiert ist, auf die erste Wiedergabevorrichtung zuzugreifen.
  • In Schritt 2006 kann die Benutzervorrichtung veranlassen, dass die erste Wiedergabevorrichtung Kopplungstoken für jede autorisierte Rechenvorrichtung erzeugt. Beispielsweise kann die Benutzervorrichtung nach erfolgreichem Koppeln der Benutzervorrichtung mit der Wiedergabevorrichtung automatisch die Vorrichtungskennungen für die autorisierten Rechenvorrichtungen (z. B. andere Benutzervorrichtungen) an die erste Wiedergabevorrichtung senden. Wenn die autorisierten Vorrichtungskennungen empfangen werden, kann die erste Wiedergabevorrichtung Kopplungstoken für jede der autorisierten Vorrichtungskennungen erzeugen. Durch Senden der autorisierten Vorrichtungskennung an die erste Wiedergabevorrichtung zum Erzeugen der Kopplungstoken hat die Benutzervorrichtung somit den Kopplungsprozess für jede der identifizierten autorisierten Vorrichtungen durchgeführt, wodurch dem Benutzer der autorisierten Vorrichtungen die Belastung abgenommen wird, den Kopplungsprozess selbst durchlaufen zu müssen, was sogar noch mühsamer sein kann, wenn mehrere Wiedergabevorrichtungen gekoppelt werden müssen.
  • In Schritt 2008 kann die Benutzervorrichtung die für jede autorisierte Rechenvorrichtung erzeugten Kopplungstoken empfangen. Beispielsweise kann die erste Wiedergabevorrichtung, nachdem die erste Wiedergabevorrichtung die Kopplungstoken für jede autorisierte Vorrichtungskennung erzeugt hat, Daten an die Benutzervorrichtung senden, die jede autorisierte Vorrichtungskennung ihrem jeweiligen Kopplungstoken zuordnen. Die Benutzervorrichtung kann dann die Zuordnung von Vorrichtungskennungen zu Kopplungstoken in der Datenbank für autorisierte Benutzer speichern, die auf der Benutzervorrichtung gespeichert ist.
  • In Schritt 2010 kann die Benutzervorrichtung ein Kopplungstoken, das für eine zweite Rechenvorrichtung erzeugt wurde, an die zweite Rechenvorrichtung senden. Nachdem beispielsweise der Kopplungsprozess für die autorisierten Rechenvorrichtungen durchgeführt wurde, kann die Benutzervorrichtung die Kopplungstoken an jede autorisierte Rechenvorrichtung senden. Beispielsweise kann das von der ersten Wiedergabevorrichtung für die zweite Rechenvorrichtung erzeugte Kopplungstoken an die zweite Rechenvorrichtung gesendet werden. Die zweite Rechenvorrichtung kann dann das Kopplungstoken verwenden, um auf die Funktionalität, Merkmale und/oder Dienste der ersten Wiedergabevorrichtung zuzugreifen.
  • Obwohl das Verfahren 2000 unter Bezugnahme auf eine einzelne Wiedergabevorrichtung (z. B. erste Wiedergabevorrichtung) beschrieben wird, kann die Umgebung mehrere Wiedergabevorrichtungen einschließen. Somit kann der Prozess 2000 für jede Wiedergabevorrichtung innerhalb der Umgebung durchgeführt werden, um die autorisierten Rechenvorrichtungen mit jeder Wiedergabevorrichtung zu koppeln, ohne die Benutzer der autorisierten Rechenvorrichtungen zu zwingen, den Kopplungsprozess mit jeder Wiedergabevorrichtung durchzuführen. Wenn jedoch eine Wiedergabevorrichtung, die ein Kopplungstoken von einer Rechenvorrichtung empfängt, das Kopplungstoken nicht validiert, oder wenn die Wiedergabevorrichtung keine Kennung für die auf der Wiedergabevorrichtung gespeicherte Rechenvorrichtung hat, kann die Wiedergabevorrichtung verhindern, dass die Rechenvorrichtung auf die Wiedergabevorrichtung zugreift, bis die Rechenvorrichtung einen Kopplungsvorgang mit der Rechenvorrichtung durchführt, der eine Benutzereingabe eines Codes oder einen anderen Kopplungsvorgang erfordert, wie oben beschrieben.
  • 21 ist ein Flussdiagramm eines beispielhaften Prozesses 2100 zum Erzeugen von Kopplungstoken für mehrere Benutzervorrichtungen. Beispielsweise kann der Prozess 2100 von einer Wiedergabevorrichtung durchgeführt werden, um Kopplungstoken für mehrere autorisierte Benutzervorrichtungen (z. B. autorisierte Rechenvorrichtungen) zu erzeugen, so dass ein separater, unter Benutzerbeteiligung durchzuführender Kopplungsprozess nicht mit jeder autorisierten Benutzervorrichtung durchgeführt werden muss.
  • In Schritt 2102 kann die Wiedergabevorrichtung eine Anforderung zum Koppeln einer ersten Rechenvorrichtung mit der Wiedergabevorrichtung empfangen. Zum Beispiel kann die Wiedergabevorrichtung eine Anforderung von einer Benutzervorrichtung empfangen, um die Benutzervorrichtung mit der Wiedergabevorrichtung zu koppeln.
  • In Schritt 2104 kann die Wiedergabevorrichtung veranlassen, dass die erste Rechenvorrichtung mit der Wiedergabevorrichtung gekoppelt wird. So kann beispielsweise die Wiedergabevorrichtung einen Code darstellen, den ein Benutzer der Benutzervorrichtung (z. B. die erste Rechenvorrichtung) in die Benutzervorrichtung eingeben kann. Die Benutzervorrichtung kann den Code an die Wiedergabevorrichtung senden und wenn die Wiedergabevorrichtung bestimmt, dass der von der Benutzervorrichtung empfangene Code mit dem von der Wiedergabevorrichtung präsentierten Code übereinstimmt, kann die Wiedergabevorrichtung ein Kopplungstoken für die Benutzervorrichtung erzeugen. Die Wiedergabevorrichtung kann das Kopplungstoken an die Benutzervorrichtung senden, so dass die Benutzervorrichtung das Kopplungstoken verwenden kann, um auf die Wiedergabevorrichtung zuzugreifen. Sobald die Wiedergabevorrichtung das Kopplungstoken an die Benutzervorrichtung sendet, werden die Vorrichtungen gekoppelt.
  • In Schritt 2106 kann die Wiedergabevorrichtung Kennungen von der ersten Rechenvorrichtung empfangen. Zum Beispiel kann die gekoppelte Benutzervorrichtung die Vorrichtungskennungen für andere autorisierte Benutzervorrichtungen (z. B. autorisierte Rechenvorrichtungen) an die Wiedergabevorrichtung senden, um eine Kopplung für die anderen autorisierten Benutzervorrichtungen zu initiieren. Die Benutzervorrichtung kann die Vorrichtungskennungen nach Kopplung mit der Wiedergabevorrichtung und/oder zusammen mit dem für die gekoppelte Benutzervorrichtung erzeugten Kopplungstoken senden, so dass die Wiedergabevorrichtung bestimmen kann, dass die Benutzervorrichtung autorisiert ist, den Kopplungsprozess für die anderen autorisierten Benutzervorrichtungen durchzuführen.
  • In Schritt 2108 kann die Wiedergabevorrichtung ein Kopplungstoken für jede empfangene Vorrichtungskennung erzeugen. Beispielsweise kann die Wiedergabevorrichtung ein eindeutiges Kopplungstoken für jede identifizierte autorisierte Benutzervorrichtung erzeugen.
  • In Schritt 2110 kann die Wiedergabevorrichtung eine Zuordnung von Kopplungstoken zu den Vorrichtungskennungen speichern. Zum Beispiel kann die Wiedergabevorrichtung eine Datenbank (z. B. eine Datenbank für autorisierte Benutzer) speichern, die Vorrichtungskennungen entsprechenden eindeutigen Kopplungstoken zuordnet, so dass, wenn später ein Kopplungstoken von einer Rechenvorrichtung empfangen wird, die versucht, auf die Wiedergabevorrichtung zuzugreifen, die Wiedergabevorrichtung die von der Rechenvorrichtung bereitgestellte Vorrichtungskennung und das Kopplungstoken mit der Zuordnung vergleichen kann, um zu bestimmen, ob die Rechenvorrichtung gegenwärtig mit der Wiedergabevorrichtung gekoppelt ist.
  • In Schritt 2112 kann die Wiedergabevorrichtung die Zuordnung zu der ersten Rechenvorrichtung senden. Beispielsweise kann die Wiedergabevorrichtung die Zuordnung von Vorrichtungskennungen zu Kopplungstoken an die erste Rechenvorrichtung senden. Die erste Rechenvorrichtung kann dann die Kopplungstoken an die entsprechenden autorisierten Rechenvorrichtungen verteilen, wie oben beschrieben.
  • In Schritt 2114 kann die Wiedergabevorrichtung ein Kopplungstoken empfangen, das von einer zweiten Rechenvorrichtung an die erste Rechenvorrichtung gesendet wurde. Beispielsweise kann die Wiedergabevorrichtung ein bestimmtes Kopplungstoken und eine Vorrichtungskennung von der zweiten Rechenvorrichtung empfangen. Die Wiedergabevorrichtung kann von der zweiten Rechenvorrichtung ein von der Wiedergabevorrichtung erzeugtes Kopplungstoken empfangen, obwohl die Wiedergabevorrichtung möglicherweise niemals mit der zweiten Rechenvorrichtung kommuniziert oder ihr ein Kopplungstoken bereitgestellt hat.
  • In Schritt 2116 kann die Wiedergabevorrichtung der zweiten Rechenvorrichtung den Zugriff auf die Wiedergabevorrichtung basierend auf dem Kopplungstoken ermöglichen. Beispielsweise kann die Wiedergabevorrichtung die von der zweiten Rechenvorrichtung empfangene Vorrichtungskennung und das Kopplungstoken mit den Vorrichtungskennungen und Kopplungstoken vergleichen, die in der auf der Wiedergabevorrichtung gespeicherten Datenbank für autorisierte Benutzer (z. B. Zuordnung) gespeichert sind. Wenn das Kopplungstoken-Vorrichtungskennung-Paar in der Datenbank für autorisierte Benutzer gefunden wird, kann die Wiedergabevorrichtung der zweiten Rechenvorrichtung den Zugriff zur Wiedergabevorrichtung ermöglichen. Wenn die Vorrichtungskennung nicht innerhalb der Datenbank für autorisierte Benutzer gefunden wird oder wenn das der Vorrichtungskennung zugeordnete Token nicht mit dem empfangenen Kopplungstoken übereinstimmt, kann die Wiedergabevorrichtung verhindern, dass die zweite Rechenvorrichtung auf die Wiedergabevorrichtung zugreift, bis sich die zweite Rechenvorrichtung erfolgreich mit der Rechenvorrichtung koppelt.
  • 22 ist ein Flussdiagramm eines beispielhaften Prozesses 2200 zum kontextabhängigen Routing von Mediendaten. Beispielsweise kann der Prozess 2200 von einer Rechenvorrichtung (z. B. einer Streaming-Vorrichtung) durchgeführt werden, um Audio- und/oder Videoausgabe, die Medienelementen, Softwareanwendungen und/oder Betriebssystemen zugeordnet ist, zu einer geeigneten Wiedergabevorrichtung zu routen.
  • In Schritt 2202 kann die Rechenvorrichtung erste Mediendaten, die dargestellt werden sollen, erhalten. Zum Beispiel können die Mediendaten einem Medienelement (z. B. Film, Musik, Hörbuch usw.) entsprechen. Die Mediendaten können Tönen oder Bildern entsprechen, die von Software erzeugt werden, wie z. B. Spielanwendungsgeräusche, Betriebssystemtöne, usw. So kann die Rechenvorrichtung die ersten Mediendaten von Softwareanwendungen beziehen, die konfiguriert sind, um Filme, Musik usw. zu präsentieren, von Gaming-Softwareanwendungen, Betriebssystemsoftware oder jeder anderen Audio oder Video erzeugenden Komponente der Rechenvorrichtung.
  • In Schritt 2204 kann die Rechenvorrichtung einen Kontext bestimmen, der den ersten Mediendaten zugeordnet ist. Beispielsweise kann der Kontext ein Systemkontext sein, der mit von Software erzeugten Tönen oder Bildern assoziiert ist. Der Kontext kann ein Medienkontext sein, der mit der Präsentation von Medienelementen assoziiert ist, wie Filme, Musik, usw. Der Kontext kann basierend auf der Quelle der Mediendaten bestimmt werden. Wenn die Quelle beispielsweise eine Film- oder Musikanwendung ist, dann kann die Rechenvorrichtung bestimmen, dass der Kontext ein Medienkontext ist. Wenn die Quelle eine Spielanwendung oder das Betriebssystem ist, dann kann die Rechenvorrichtung bestimmen, dass der Kontext der Systemkontext ist.
  • In Schritt 2206 kann die Rechenvorrichtung Medienroutingregeln erhalten, die spezifizieren, wie die ersten Mediendaten basierend auf dem Kontext zu routen sind. So können die Regeln beispielsweise festlegen, dass Mediendaten, die dem Systemkontext zugeordnet sind, lokal geroutet werden sollen. Zum Beispiel kann das lokale Routen das Darstellen der Mediendaten auf der lokalen Rechenvorrichtung oder das Darstellen der Mediendaten durch persönliche Wiedergabevorrichtungen (z. B. Headsets, persönliche Lautsprecher, persönliche Anzeigevorrichtungen usw.) einschließen, die mit der lokalen Rechenvorrichtung verbunden sind. Die Regeln können festlegen, dass die mit dem Medienkontext verbundenen Mediendaten an entfernte Wiedergabevorrichtungen geroutet werden sollen. Wenn die Rechenvorrichtung beispielsweise gerade die Wiedergabe von Medienelementen an eine entfernte Wiedergabevorrichtung (oder Gruppe von Vorrichtungen) routet oder wenn die Rechenvorrichtung zuvor die Wiedergabe von Medienelementen an eine entfernte Wiedergabevorrichtung geroutet hat, dann kann die Rechenvorrichtung Mediendaten, die dem Medienkontext zugeordnet sind, an die entfernte Wiedergabevorrichtung routen.
  • In Schritt 2208 kann die Rechenvorrichtung eine Wiedergabevorrichtung oder Wiedergabevorrichtungen zum Darstellen der Mediendaten basierend auf dem bestimmten Kontext und den Medienroutingregeln auswählen. Beispielsweise kann der bestimmte Kontext mit den Medienroutingregeln verglichen werden, um zu bestimmen, welche Wiedergabevorrichtung zum Darstellen der Mediendaten auszuwählen ist. Basierend auf den Regeln kann die Rechenvorrichtung die Auswahl der Rechenvorrichtung (z. B. lokale und/oder persönliche Wiedergabevorrichtungen) als die Wiedergabevorrichtung treffen, wenn die Mediendaten mit dem Systemkontext assoziiert sind. Basierend auf den Regeln kann die Rechenvorrichtung eine Fernwiedergabevorrichtung (oder eine Gruppe von Wiedergabevorrichtungen) als die Wiedergabevorrichtung auswählen, wenn die Mediendaten dem Medienkontext zugeordnet sind.
  • In Schritt 2210 kann die Rechenvorrichtung die ersten Mediendaten zu der ausgewählten Wiedergabevorrichtung oder Vorrichtungen senden. Beispielsweise kann die Rechenvorrichtung die ersten Mediendaten an die Lautsprecher und/oder die Anzeige der Rechenvorrichtung oder an mit der Rechenvorrichtung verbundene persönliche Wiedergabevorrichtungen senden. Die Rechenvorrichtung kann die ersten Mediendaten an eine Fernwiedergabevorrichtung oder eine Gruppe von Wiedergabevorrichtungen zur Darstellung senden.
  • In einigen Implementierungen kann die Rechenvorrichtung gleichzeitig Systemkontext-Mediendaten und Medienkontext-Mediendaten routen. So kann beispielsweise die Rechenvorrichtung einen Film an eine entfernte Wiedergabegruppe streamen, während sie die Videospielausgabe auf der Anzeige und über die Lautsprecher der Rechenvorrichtung präsentiert. Somit kann die Rechenvorrichtung mehrere Instanzen von Mediendaten gleichzeitig zu unterschiedlichen Wiedergabevorrichtungen verarbeiten und routen.
  • Grafische Benutzerschnittstellen
  • Diese Offenbarung beschreibt oben verschiedene grafische Benutzerschnittstellen (GUIs) zum Implementieren verschiedener Merkmale, Prozesse oder Arbeitsabläufe. Diese GUIs können auf einer Vielzahl von elektronischen Vorrichtungen dargestellt werden, einschließlich, aber nicht beschränkt auf Laptop-Computer, Desktop-Computer, Computer-Terminals, Fernsehsysteme, Tablet-Computer, E-Book-Reader und Smartphones. Eine oder mehrere dieser elektronischen Vorrichtungen können eine berührungsempfindliche Oberfläche einschließen. Die berührungsempfindliche Oberfläche kann mehrere gleichzeitige Eingabepunkte verarbeiten, einschließlich Verarbeitungsdaten in Bezug auf Druck, Grad oder Position jedes Eingabepunktes. Eine solche Verarbeitung kann Gesten mit mehreren Fingern erleichtern, einschließlich zoomen und wischen.
  • Wenn sich die Offenbarung auf „Auswahl“ oder „Auswählen“ von Elementen der Benutzerschnittstelle in einer GUI bezieht, wird unter diesen Begriffen das Klicken oder „Schweben“ mit der Maus oder einer anderen Eingabevorrichtung über einem Element der Benutzerschnittstelle oder das Berühren, Tippen oder Gestikulieren mit einem oder mehreren Fingern oder einem Stift auf einem Element der Benutzerschnittstelle verstanden. Elemente der Benutzerschnittstelle können virtuelle Schaltflächen, Menüs, Wahlschalter, Schalter, Schieberegler, Regler, Knöpfe, Miniaturbilder, Links, Symbole, Optionsfelder, Kontrollkästchen und alle anderen Mechanismen zum Empfangen von Eingaben von oder zum Bereitstellen von Feedback für einen Benutzer sein.
  • Datenschutz
  • Die vorliegende Offenbarung erkennt, dass die Verwendung solcher personenbezogenen Daten in der vorliegenden Technologie zum Vorteil der Benutzer verwendet werden kann. Zum Beispiel können die personenbezogenen Daten verwendet werden, um zielgerichtete Inhalte zu liefern, die für den Benutzer von größerem Interesse sind. Somit ermöglicht die Verwendung solcher personenbezogenen Daten eine kalkulierte Steuerung des gelieferten Inhalts. Ferner werden von der vorliegenden Offenbarung auch andere Verwendungen personenbezogener Informationen, die für den Benutzer von Vorteil sind, in Betracht gezogen.
  • Die vorliegende Offenbarung geht ferner davon aus, dass die Stellen, die für die Erfassung, Analyse, Offenbarung, Übertragung, Speicherung oder andere Verwendung solcher personenbezogenen Daten verantwortlich sind, sich an bewährte Datenschutzvorschriften und/oder Datenschutzpraktiken halten. Insbesondere sollten solche Stellen Datenschutzvorschriften und -praktiken implementieren und konsistent anwenden, die allgemein als solche anerkannt sind, welche die von der Industrie oder der Regierung aufgestellten Anforderungen an die vertrauliche und sichere Aufbewahrung personenbezogener Daten erfüllen oder übererfüllen. Zum Beispiel sollten personenbezogene Daten von Benutzern für legitime und nachvollziehbare Nutzungen durch die Stelle erfasst werden und nicht außerhalb dieser legitimen Nutzung weitergegeben oder verkauft werden. Ferner sollte eine solche Erfassung nur stattfinden, nachdem die informierte Zustimmung der Benutzer erhalten worden ist. Außerdem würden solche Stellen alle notwendigen Schritte für den Schutz und die Sicherung des Zugangs zu solchen personenbezogenen Daten ergreifen und sicherstellen, dass andere, die Zugang zu den personenbezogenen Daten haben, sich an ihre Datenschutzvorschriften und -abläufe halten. Ferner können solche Stellen sich einer Evaluierung durch Dritte unterwerfen, um bestätigen zu lassen, dass sie sich an gemeinhin anerkannte Datenschutzvorschriften und -praktiken halten.
  • Trotz der obigen Ausführungen zieht die vorliegende Offenbarung auch Ausführungsformen in Betracht, in denen Benutzer die Nutzung von oder den Zugang zu personenbezogenen Daten selektiv blockieren. Das heißt, die vorliegende Offenbarung geht davon aus, dass Hardware- und/oder Software-Elemente bereitgestellt werden können, um einen Zugang zu solchen personenbezogenen Daten zu verhindern oder zu blockieren. Zum Beispiel kann im Falle von Werbungslieferdiensten die vorliegende Technologie konfiguriert sein, Benutzern zu ermöglichen, während der Registrierung für Dienste auszuwählen, ob sie einer Teilnahme an der Sammlung von persönlichen Daten zustimmen („opt in“) oder diese ablehnen („opt out“). In einem weiteren Beispiel können Benutzer auswählen, keine Standortinformationen für Lieferdienste gezielter Inhalte bereitzustellen. In noch einem weiteren Beispiel können Benutzer auswählen, keine präzisen Standortinformationen bereitzustellen, jedoch die Übertragung von Standortzoneninformationen zu gestatten.
  • Beispielsystemarchitektur
  • 23 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung 2300, die die Merkmale und Prozesse der 1-22 implementieren kann. Die Rechenvorrichtung 2300 kann eine Speicherschnittstelle 2302, einen oder mehrere Datenprozessoren, Bildprozessoren und/oder zentrale Verarbeitungseinheiten 2304 und eine Peripherieschnittstelle 2306 einschließen. Die Speicherschnittstelle 2302, der eine oder die mehreren Prozessoren 2304 und/oder die Peripherieschnittstelle 2306 können separate Komponenten sein oder können in eine oder mehrere integrierte Schaltungen integriert sein. Die verschiedenen Komponenten in der Rechenvorrichtung 2300 können über einen oder mehrere Kommunikationsbusse oder eine oder mehrere Signalleitungen gekoppelt sein.
  • Sensoren, Vorrichtungen und Untersysteme können mit der Peripherieschnittstelle 2306 gekoppelt sein, um Mehrfachfunktionalitäten zu erleichtern. Zum Beispiel können ein Bewegungssensor 2310, ein Lichtsensor 2312 und ein Näherungssensor 2314 an die Peripherieschnittstelle 2306 gekoppelt sein, um Funktionen der Ausrichtung, Beleuchtung und Näherungserfassung zu unterstützen. Andere Sensoren 2316 können auch mit der Peripherieschnittstelle 2306 verbunden sein, wie ein globales Navigationssatellitensystem (GNSS) (z. B. GPS-Empfänger), ein Temperatursensor, ein biometrischer Sensor, ein Magnetometer oder eine andere Erfassungsvorrichtung, um damit zusammenhängende Funktionalitäten zu erleichtern.
  • Ein Kamerasubsystem 2320 und ein optischer Sensor 2322, z. B. eine ladungsgekoppelte Vorrichtung (CCD) oder ein optischer Sensor (CMOS: Complementary Metal-Oxide Semiconductor), können verwendet werden, um Kamerafunktionen zu unterstützen, beispielsweise das Aufzeichnen von Fotos und Videoclips. Das Kamerasubsystem 2320 und der optische Sensor 2322 können verwendet werden, um Bilder eines Benutzers zu sammeln, die während einer Authentifizierung eines Benutzers verwendet werden sollen, z. B. durch Durchführen einer Gesichtserkennungsanalyse.
  • Kommunikationsfunktionen können durch ein oder mehrere drahtlose Kommunikationssubsysteme 2324, die Funkfrequenzempfänger und -sender und/oder optische (z. B. Infrarot-) Empfänger und Sender einschließen können, unterstützt werden. Das jeweilige Design und die jeweilige Implementierung des Kommunikationssubsystems 2324 können von dem bzw. den Kommunikationsnetz(en) abhängen, über das bzw. über die eine Rechenvorrichtung 2300 betrieben werden soll. Zum Beispiel kann Rechenvorrichtung 2300 Kommunikationssubsysteme 2324 einschließen, die für den Betrieb über ein GSM-Netzwerk, ein GPRS-Netzwerk, ein EDGE-Netzwerk, ein Wi-Fi- oder WiMAX-Netzwerk und ein Bluetooth™-Netzwerk ausgelegt sind. Insbesondere können die drahtlosen Kommunikationssubsysteme 2324 Hosting-Protokolle einschließen, so dass die Vorrichtung 100 als Basisstation für andere drahtlose Vorrichtungen konfiguriert werden kann.
  • Ein Audiosubsystem 2326 kann an einen Lautsprecher 2328 und ein Mikrophon 2330 gekoppelt sein, um sprachgestützte Funktionen wie Sprechererkennung, Sprachreplikation, digitales Aufzeichnen und Telefoniefunktionen zu unterstützen. Das Audiosubsystem 2326 kann konfiguriert sein, um beispielsweise die Verarbeitung von Sprachbefehlen, Voiceprinting und Sprachauthentifizierung zu erleichtern.
  • Das E/A-Subsystem 2340 kann eine Touch-Oberflächensteuerung 2342 und/oder andere Eingabesteuerungen 2344 einschließen. Die Touch-Oberflächensteuerung 2342 kann an eine Touch-Oberfläche 2346 gekoppelt sein. Die Touch-Oberfläche 2346 und die Touch-Oberflächensteuerung 2342 können beispielsweise einen Kontakt und eine Bewegung oder eine Unterbrechung davon, unter Verwendung einer beliebigen von einer Vielzahl von auf Berührungsempfindlichkeit basierenden Technologien, einschließlich aber nicht beschränkt auf auf kapazitiven, resistiven, Infrarot und Oberflächenakustikwellen basierenden Technologien, ebenso wie anderer Näherungssensor-Arrays oder anderer Elemente zur Bestimmung eines oder mehrerer Kontaktpunkte mit der berührungsempfindlichen Oberfläche 2346, erfassen.
  • Die anderen Eingabesteuerungen 2344 können an andere Eingabe-/Steuervorrichtungen 2348 wie eine oder mehrere Schaltflächen, einen Kippschalter, ein Einstellrad, einen Infrarotanschluss, einen USB-Anschluss und/oder eine Zeigevorrichtung wie einen Eingabestift gekoppelt sein. Die eine oder mehreren Schaltflächen (nicht dargestellt) können eine Lauter-/Leiser-Schaltfläche für eine Lautstärkesteuerung des Lautsprechers 2328 und/oder eines Mikrofons 2330 einschließen.
  • In einer Implementierung kann ein Drücken der Schaltfläche für eine erste Dauer eine Sperre der Touch-Oberfläche 2346 lösen; und ein Drücken der Schaltfläche für eine zweite Dauer, die länger als die erste Dauer ist, kann Leistung zu der Rechenvorrichtung 2300 ein- oder ausschalten. Durch Drücken der Schaltfläche für eine dritte Dauer kann ein Sprachsteuerungs- oder Sprachbefehlsmodul aktiviert werden, das es dem Benutzer ermöglicht, Befehle in das Mikrofon 2330 zu sprechen, damit die Vorrichtung den Sprachbefehl ausführen kann. Der Benutzer kann eine Funktionalität einer oder mehrerer der Schaltflächen individuell anpassen. Die berührungsempfindliche Oberfläche 2346 kann beispielsweise auch verwendet werden, um virtuelle oder Soft-Tasten und/oder eine Tastatur zu implementieren.
  • In manchen Implementierungen kann die Rechenvorrichtung 2300 aufgezeichnete Audio- und/oder Videodateien, beispielsweise MP3-, AAC- und MPEG-Dateien, wiedergeben. In manchen Implementierungen kann die Rechenvorrichtung 2300 die Funktionalität eines MP3-Players, wie eines iPod™, einschließen.
  • Die Speicherschnittstelle 2302 kann mit einem Speicher 2350 gekoppelt sein. Der Speicher 2350 kann einen Hochgeschwindigkeitsspeicher mit wahlfreiem Zugriff und/oder einen nicht-flüchtigen Hochgeschwindigkeitsspeicher einschließen, beispielsweise eine oder mehrere Magnetplattenspeichervorrichtungen, eine oder mehrere optische Speichervorrichtungen und/oder einen Flash-Speicher (z. B. NAND, NOR). Der Speicher 2350 kann ein Betriebssystem 2352, beispielsweise Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS oder ein eingebettetes Betriebssystem, wie VxWorks, speichern.
  • Das Betriebssystem 2352 kann Anweisungen für die Behandlung grundlegender Systemdienste und für die Durchführung hardwareabhängiger Aufgaben einschließen. In manchen Implementierungen kann das Betriebssystem 2352 ein Kernel (z. B. ein UNIX-Kernel) sein. In manchen Implementierungen kann das Betriebssystem 2352 Anweisungen zum Durchführen einer Sprachauthentifizierung einschließen. Beispielsweise kann das Betriebssystem 2352 die Merkmale implementieren, wie sie unter Bezugnahme auf die 1-22 beschrieben wurden.
  • Der Speicher 2350 kann auch Kommunikationsanweisungen 2354 speichern, um die Kommunikation mit einer oder mehreren zusätzlichen Vorrichtungen, einem oder mehreren Computern und/oder einem oder mehreren Servern zu erleichtern. Der Speicher 2350 kann grafische Benutzerschnittstellenanweisungen 2356 enthalten, um die grafische Benutzerschnittstellenverarbeitung zu erleichtern; Sensorverarbeitungsanweisungen 2358, um sensorbezogene Verarbeitung und Funktionen zu erleichtern; Telefonanweisungen 2360, um telefonbezogene Prozesse und Funktionen zu erleichtern; Anweisungen für elektronische Nachrichtenübermittlung 2362, um Prozesse und Funktionen zu erleichtern, die sich auf die elektronische Nachrichtenübermittlung beziehen; Webbrowsing-Anweisungen 2364, um Prozesse und Funktionen zu erleichtern, die sich auf das Webbrowsing beziehen; Medienverarbeitungsanweisungen 2366, um medienverarbeitungsbezogene Prozesse und Funktionen zu erleichtern; GNSS-/Navigationsanweisungen 2368, um GNSS- und navigationsbezogene Prozesse und Anweisungen zu erleichtern; Und/oder Kameraanweisungen 2370, um kamerabezogene Prozesse und Funktionen zu erleichtern.
  • Der Speicher 2350 kann weitere Softwareanweisungen 2372 speichern, um andere Prozesse und Funktionen zu unterstützen, wie beispielsweise die Prozesse und Funktionen, die mit Bezug auf die 1-22 beschrieben sind.
  • Der Speicher 2350 kann auch andere Softwareanweisungen 2374 speichern, wie z. B. Web-Videoanweisungen, um Prozesse und Funktionen im Zusammenhang mit Web-Video zu erleichtern; und/oder Online-Einkaufsanweisungen, um auf Online-Einkauf bezogene Prozesse und Funktionen zu erleichtern. In manchen Implementierungen sind die Medienverarbeitungsanweisungen 2366 in Audioverarbeitungsanweisungen und Videoverarbeitungsanweisungen geteilt, um Prozesse und Funktionen im Zusammenhang mit Audioverarbeitung bzw. Prozesse und Funktionen im Zusammenhang mit Videoverarbeitung zu erleichtern.
  • Jede der oben genannten Anweisungen und Anwendungen kann einen Satz von Anweisungen zur Durchführung einer oder mehrerer der oben beschriebenen Funktionen beinhalten. Diese Anweisungen müssen nicht als separate Software-Programme, Abläufe oder Module implementiert werden. Der Speicher 2350 kann zusätzliche Anweisungen oder weniger Anweisungen einschließen. Des Weiteren können verschiedene Funktionen der Rechenvorrichtung 2300 in Hardware und/oder in Software implementiert werden, einschließlich in einem oder mehreren integrierten Schaltkreisen für die Signalverarbeitung und/oder anwendungsspezifischen integrierten Schaltkreisen.

Claims (14)

  1. Verfahren, umfassend: Erhalten von ersten Mediendaten, die dargestellt werden sollen, durch eine Rechenvorrichtung; Bestimmen eines Kontexts, der den ersten Mediendaten zugeordnet ist, durch die Rechenvorrichtung; Erhalten von Medienroutingregeln, die spezifizieren, wie die ersten Mediendaten basierend auf dem Kontext zu routen sind, durch die Rechenvorrichtung; Auswählen mindestens einer Wiedergabevorrichtung zum Darstellen der ersten Mediendaten basierend auf dem bestimmten Kontext und den Medienroutingregeln; und Senden der ersten Mediendaten an die mindestens eine Wiedergabevorrichtung durch die Rechenvorrichtung.
  2. Verfahren nach Anspruch 1, ferner umfassend: Erhalten der ersten Mediendaten von einer Softwarequelle, die auf der Rechenvorrichtung ausgeführt wird; und Bestimmen des Kontexts basierend auf einem Typ der Softwarequelle.
  3. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass der Kontext ein Systemkontext ist; und basierend auf der Bestimmung, dass der Kontext ein Systemkontext ist, Veranlassen, dass die ersten Mediendaten durch eine lokale Vorrichtung dargestellt werden.
  4. Verfahren nach Anspruch 3, wobei die lokale Vorrichtung der Rechenvorrichtung, einer Headset-Vorrichtung, die mit der Rechenvorrichtung verbunden ist, oder einer persistenten Wiedergabegruppe, die die Rechenvorrichtung einschließt, entspricht.
  5. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass der Kontext ein Medienkontext ist; und basierend auf der Bestimmung, dass der Kontext ein Medienkontext ist, Veranlassen, dass die ersten Mediendaten durch eine entfernte Wiedergabevorrichtung dargestellt werden.
  6. Verfahren nach Anspruch 5, ferner umfassend: Erhalten von zweiten Mediendaten, die dargestellt werden sollen, durch eine Rechenvorrichtung; Bestimmen durch die Rechenvorrichtung, dass die zweiten Mediendaten einem Systemkontext entsprechen; und Veranlassen, dass die zweiten Mediendaten durch eine lokale Vorrichtung dargestellt werden, während veranlasst wird, dass die ersten Mediendaten durch die entfernte Wiedergabevorrichtung dargestellt werden.
  7. Verfahren nach Anspruch 2, wobei der Typ der Softwarequelle einer Filmanwendung, einer Fernsehanwendung, einer Spielanwendung oder einem Betriebssystem der Rechenvorrichtung entspricht.
  8. System, umfassend: einen oder mehrere Prozessoren; und ein nicht-flüchtiges computerlesbares Medium, das eine oder mehrere Sequenzen von Anweisungen einschließt, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, veranlassen, dass die Prozessoren Operationen ausführen, die umfassen: Erhalten von ersten Mediendaten, die dargestellt werden sollen, durch eine Rechenvorrichtung; Bestimmen eines Kontexts, der den ersten Mediendaten zugeordnet ist, durch die Rechenvorrichtung; Erhalten von Medienroutingregeln, die spezifizieren, wie die ersten Mediendaten basierend auf dem Kontext zu routen sind, durch die Rechenvorrichtung; Auswählen mindestens einer Wiedergabevorrichtung zum Darstellen der ersten Mediendaten basierend auf dem bestimmten Kontext und den Medienroutingregeln; und Senden der ersten Mediendaten an die mindestens eine Wiedergabevorrichtung durch die Rechenvorrichtung.
  9. System nach Anspruch 8, wobei die Anweisungen den Prozessor veranlassen, Operationen auszuführen, die umfassen: Erhalten der ersten Mediendaten von einer Softwarequelle, die auf der Rechenvorrichtung ausgeführt wird; und Bestimmen des Kontexts basierend auf einem Typ der Softwarequelle.
  10. System nach Anspruch 8, wobei die Anweisungen den Prozessor veranlassen, Operationen auszuführen, die umfassen: Bestimmen, dass der Kontext ein Systemkontext ist; und basierend auf der Bestimmung, dass der Kontext ein Systemkontext ist, Veranlassen, dass die ersten Mediendaten durch eine lokale Vorrichtung dargestellt werden.
  11. System nach Anspruch 10, wobei die lokale Vorrichtung der Rechenvorrichtung, einer Headset-Vorrichtung, die mit der Rechenvorrichtung verbunden ist, oder einer persistenten Wiedergabegruppe, die die Rechenvorrichtung einschließt, entspricht.
  12. System nach Anspruch 8, wobei die Anweisungen den Prozessor veranlassen, Operationen auszuführen, die umfassen: Bestimmen, dass der Kontext ein Medienkontext ist; und basierend auf der Bestimmung, dass der Kontext ein Medienkontext ist, Veranlassen, dass die ersten Mediendaten durch eine entfernte Wiedergabevorrichtung dargestellt werden.
  13. System nach Anspruch 12, wobei die Anweisungen den Prozessor veranlassen, Operationen auszuführen, die umfassen: Erhalten von zweiten Mediendaten, die dargestellt werden sollen, durch eine Rechenvorrichtung; Bestimmen durch die Rechenvorrichtung, dass die zweiten Mediendaten einem Systemkontext entsprechen; und Veranlassen, dass die zweiten Mediendaten durch eine lokale Vorrichtung dargestellt werden, während veranlasst wird, dass die ersten Mediendaten durch die entfernte Wiedergabevorrichtung dargestellt werden.
  14. System nach Anspruch 9, wobei der Typ der Softwarequelle einer Filmanwendung, einer Fernsehanwendung, einer Spielanwendung oder einem Betriebssystem der Rechenvorrichtung entspricht.
DE102019204521.9A 2018-03-30 2019-03-29 Kontextabhängiges Routing von Mediendaten Ceased DE102019204521A1 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862650728P 2018-03-30 2018-03-30
US62/650,728 2018-03-30
US201862679967P 2018-06-03 2018-06-03
US62/679,967 2018-06-03
US16/287,994 2019-02-27
US16/287,994 US20190306054A1 (en) 2018-03-30 2019-02-27 Contextual Routing of Media Data

Publications (1)

Publication Number Publication Date
DE102019204521A1 true DE102019204521A1 (de) 2019-10-02

Family

ID=67910333

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019204521.9A Ceased DE102019204521A1 (de) 2018-03-30 2019-03-29 Kontextabhängiges Routing von Mediendaten

Country Status (2)

Country Link
US (1) US20190306054A1 (de)
DE (1) DE102019204521A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747011B2 (en) * 2014-09-16 2017-08-29 Google Inc. Continuation of playback of media content by different output devices
US11477516B2 (en) * 2018-04-13 2022-10-18 Koji Yoden Services over wireless communication with high flexibility and efficiency

Also Published As

Publication number Publication date
US20190306054A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
US20200186373A1 (en) Method and system for sharing and discovery
CN111901674B (zh) 一种视频播放控制方法及装置
US9246917B2 (en) Live representation of users within online systems
CA2884407C (en) System and method for broadcasting interactive content
CN113613046B (zh) 管理回放组
US9955204B2 (en) System and method for distributing content through a set-top box
CN108566561B (zh) 视频播放方法、装置及存储介质
DE102016121564A1 (de) System und verfahren zum mit einem netzwerk gekoppelten spielen
DE112016004512T5 (de) Koordinierte steuerung der medienwiedergabe
DE102017124876A1 (de) Bestimmen von Suchanfragen, um Informationen während einer Benutzererfahrung eines Ereignisses zu erlangen
US20220232276A1 (en) Remotely Controlling Playback Devices
WO2015043415A1 (zh) 一种视频内容互动方法、装置及系统
DE102019204521A1 (de) Kontextabhängiges Routing von Mediendaten
US10397296B2 (en) Comment link for shared streaming media content
US20190306904A1 (en) Pairing Devices by Proxy
JP5624056B2 (ja) クエリを生成する方法、装置及びコンピュータプログラム
US11729489B2 (en) Video chat with plural users using same camera
WO2023284498A1 (zh) 视频播放方法、装置及存储介质
CN106550279A (zh) 互动直播实现方法、装置及系统
US11381628B1 (en) Browser-based video production
CN115695841B (zh) 一种在外置式虚拟场景中嵌入在线直播的方法和装置
KR101970292B1 (ko) 게시물 공유 서비스 제공 방법, 장치 및 컴퓨터 프로그램
US20230401076A1 (en) Dynamic input interaction
US20240137617A1 (en) Video playing method and apparatus, and storage medium
US20220094729A1 (en) Live Streaming Architecture with Server-Side Stream Mixing

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R130 Divisional application to

Ref document number: 102019009388

Country of ref document: DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final