-
QUERVERWEIS AUF VERWANDTE
ANMELDUNG
-
Diese
Anmeldung ist eine Teil-Fortsetzung der am 6. Januar 2006 eingereichten
US-Patentanmeldung 11/327,180 mit dem Titel "Universal Music Apparatus for Unifying
Access to Multiple Specialized Music Servers", die die Priorität der am 7. Januar 2005 eingereichten
provisorischen US-Anmeldung 60/642,287 mit dem Titel "Universal Music Apparatus
for Unifying Access to Multiple Specialized Music Servers" und der am 29. Juni
2005 eingereichten provisorischen US-Anmeldung 60/695,578 mit dem
Titel "Method, Apparatus,
System und Computer Readable Medium for Providing a Universal Media
Date Interface to Control a Universal Media Apparatus" beansprucht. Diese
Anmeldung beansprucht auch die Priorität der am 29. Juni 2005 eingereichten provisorischen
US-Anmeldung 60/695,578 mit dem Titel "Method, Apparatus, System and Computer
Readable Medium for Providing a Universal Media Data Interface to
Control a Universal Media Apparatus", wobei hier die Offenbarungen aller
zuvor genannten Anmeldungen für
alle Zwecke vollinhaltlich durch Bezugnahme aufgenommen werden.
-
KURZE BESCHREIBUNG DER ERFINDUNG
-
Diese
Erfindung betrifft allgemein digitale Medienspieler wie auch Musikspieler,
und insbesondere eine Universalmedienschnittstelle ("UMI") und ein Steuerprotokoll,
um eine Kommunikation zwischen einem Zielgerät, in dem die Universalmedienschnittstelle
angeordnet ist, und einer Universalmedienvorrichtung, wie beispielsweise
einer Universalmusikvorrichtung, zu erleichtern, um es dadurch zu
ermöglichen,
dass die Zielvorrichtung Musik verschiedener Typen von Medien- und
Musikservern abspielt.
-
HINTERGRUND DER ERFINDUNG
-
Musikserverprozesse
sind üblicherweise
auf verschiedenen Rechengerät-Hardwareplattformen
(d. h. Musikservern) implementiert, um Musik in einem digitalisierten
Musikformat an vernetzte Clients zu liefern. Herkömmliche
Musikserverprozesse weisen allgemein Ermittlungsprotokolle und Kommunikationsprotokolle auf,
die beide proprietär
und spezialisiert sind. Da Musikserverprozesse einzigartige Funktionen
implementieren, müssen
es auch Musikclients, die allgemein als "Netzmusikspieler" oder nur als Musikspieler bezeichnet werden.
In ähnlicher
Weise implementieren "Netzmedienspieler" ebenfalls proprietäre und spezialisierte
Protokolle, um Videoinformationen und/oder unbewegte Bilder sowie
Audioinformationen als Datenstrom wiederzugeben ("Streaming").
-
Auch
wenn herkömmliche
Medien- und Musikspieler funktionstüchtig sind, besteht ein allgemeiner Nachteil
bei der Implementierung eines einzelnen Musikspielers, wenn zwei
oder mehrere verschiedene Musikserverprozesse das gleiche Netzwerk
gemeinsam verwenden. Da übliche
Musikspieler mit einer begrenzten Anzahl von Ermittlungs- und Kommunikationsprotokollen
kompatibel sind (gewöhnlich
auf je eines dieser Protokolle begrenzt), würden Musikdaten, die auf einem
weiteren, andere Protokolle aufweisenden Server gespeichert sind,
für die
meisten Musikspieler, die nicht mit dem gleichen Protokoll arbeiten,
nicht erreichbar sein.
-
1 zeigt
einen weiteren Nachteil bei herkömmlichen
Medienspielern. Herkömmliche
Musikserver, wie zum Beispiel ein spezialisierter Musikserver ("SMS1") 108, weisen
nämlich
eine Serversteuerlogik 110 auf, die erforderlich ist, um
die Musikserverprozesse zu implementieren. Folglich befindet sich
die Serverlogik 110 typischerweise auf der Musikserverseite
(zum Beispiel auf der Rechengerät-Hardwareplattform,
wie zum Beispiel einem PC oder einem MacTM-Computer),
wobei ein üblicher
Musikspieler Eins ("TMP1") 102 etwa
wie ein "schlanker
Client" funktioniert,
der durch den Musikserver gesteuert wird. Beispielsweise erzeugt
der übliche Musikspieler
Eins 102 nur serverspezifische Befehle 104 und übermittelt
diese über
ein Netz an den spezialisierten Musikserver 108, um eine
Musikwiedergabe zu initiieren. Durch Anordnen der Serversteuerlogik 110 auf
der Serverseite des Netzes 106 ist es schwierig, den spezialisierten
Musikserver 108 so zu modifizieren, dass er allgemein mit
anderen spezialisierten Musikservern, beispielsweise mit einem weiteren üblichen
Musikspieler Zwei ("TMP2") 122, zusammenarbeitet.
Der übliche
Musikspieler Zwei 122 verwendet seine eigenen spezialisierten
serverspezifischen Befehle 124, um auf eine Serverlogik 120 eines
spezialisierten Musikservers ("SMS2") 128 zuzugreifen.
Inkompatibilitäten
ergeben sich aus den Unterschieden der Kommunikationsprotokolle
(sowie der Ermittlungsprotokolle), die verwendet werden, um serverspezifische
Befehle 104 und 124 zu übergeben. Und da weder der
spezialisierte Musikserver 108 noch der spezialisierte
Musikserver 128 typischerweise eine angemessene Schnittstelle
zum allgemeinen Kommunizieren mit verschiedenen Zielgeräten und
proprietären
Zielkonfigurationen bereitstellen, muss ein Konstrukteur eines Zielgeräts mehrere
Serverprotokolle lernen, um die Funktionalität der Musikspieler in das Zielgerät zu integrieren.
Beispielsweise können Originalausrüstungshersteller
("OEMs"), die Funktionalitäten eines
Musik-(oder Medien-)Spielers in ihre Produkte integrieren möchten, dies
nicht leicht unter Verwendung der Serversteuerlogik 110 und 120 bewerkstelligen,
besonders wenn solche OEMs anstreben, es zu ermöglichen, dass ihre Produkte
auf Musik zweier oder mehrerer verschiedener Musikserverprozesse
zugreifen. OEMs stellen typischerweise elektronische Produkte, beispielsweise
Musiksysteme (zum Beispiel CD- und DVD-Spieler sowie Rundfunkradioempfänger), Audio/Video-("A/V")-Empfänger, Fernseher,
Radios, usw., her.
-
Angesichts
der vorhergehenden Ausführungen
wäre es
höchst
wünschenswert,
eine Universalmedienschnittstelle ("UMI")
zum Kommunizieren mit einer Universalmedienvorrichtung, beispielsweise
einer Universalmusikvorrichtung, bereitzustellen, wobei die UMI
derart konfigurierbar ist, dass sie für nicht-standardisierte Zielgeräte eine
universelle (oder standardisierte) Funktionalität zur Steuerung einer Universalmusikvorrichtung
bereitstellt.
-
ZUSAMMENFASSENDE DARSTELLUNG
DER ERFINDUNG
-
Verschiedene
Ausgestaltungen der Erfindung stellen ein Verfahren, eine Vorrichtung,
ein System und ein computerlesbares Medium zum Implementieren einer
Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung
bereit. Die Universalmedienschnittstelle und das Steuerprotokoll
erleichtern eine Kommunikation, einschließlich einer Ausgabe von verallgemeinerten
Befehlen, zwischen einem Zielgerät,
beispielsweise einem Audio/Video-("A/V")-Gerät, und einem
Universalmusikspieler, um es dadurch zu ermöglichen, dass das Zielgerät Musik
(und optional Video) von verschiedenen Typen von Musikservern abspielt.
Die Universalmedienschnittstelle ("UMI")
ermöglicht
es Herstellern elektronischer Verbrauchergeräte, schnell und einfach die
Funktionalität
einer Musikwiedergabe über
ein Netz in ihre Produkte zu integrieren. In einer Ausgestaltung
stellt eine Vorrichtung musikbezogene Anfragen von einem elektronischen
Zielgerät
an einen oder mehrere spezialisierte Musikserver bereit, die mit
verschiedenen Server-Protokollen arbeiten. Die Vorrichtung weist
einen Anfragedekodierer, der derart konfiguriert ist, dass er eine
musikbezogene Anfrage dekodiert, um unter Verwendung eines einer
Mehrzahl von verschiedenen Server-Protokollen mit zumindest einem
spezialisierten Musikserver zu kommunizieren, sowie ein Befehlssteuerprotokollmodul
auf, das derart konfiguriert ist, dass es in Antwort auf die musikbezogene
Anfrage einen verallgemeinerten musikbezogenen Befehl erzeugt. Sie
kann auch ein Universalmusikvorrichtungsmodul aufweisen, das derart
konfiguriert ist, dass es in Antwort auf den verallgemeinerten musikbezogenen
Befehl auf mehrere spezialisierte Musikserver zugreift. Die Vorrichtung
kann ferner eine optionale Universalmediendatenverbindung aufweisen,
die derart konfiguriert ist, dass sie den verallgemeinerten musikbezogenen
Befehl von dem Befehlssteuerprotokollmodul an das Universalmusikvorrichtungsmodul übergibt.
Die mehreren spezialisierten Musikserver implementieren im Allgemeinen
inkompatible Serverprotokolle.
-
In
einer weiteren Ausgestaltung ist die UMI derart konfiguriert, dass
sie eine Benutzereingabe von einem Zielgerät akzeptiert, um Befehle an
eine Universalmusikvorrichtung zu richten, um dadurch die Universalmusikvorrichtung
zu veranlassen, meh rere Medienserver automatisch zu ermitteln und
mit diesen zu kommunizieren, wie beispielsweise Windows Media ConnectTM, das von Microsoft, Inc. hergestellt wird
und in einem lokalen Netz läuft.
In zumindest einer Ausgestaltung werden auch Internetradiostationen
vollständig
unterstützt,
und zwar mit eigenen Radiovorgaben, die durch den Benutzer auf Knopfdruck
oder mit einer anderen Benutzereingabe, die derart konfiguriert
ist, dass sie Befehle über
die UMI veranlasst, gespeichert und abgerufen werden können. In
einer Ausgestaltung arbeiten die UMI und eine Universalmusikvorrichtung
zusammen, um beispielsweise einen UPnP-AV-Musikrenderer zu implementieren,
wodurch es ermöglicht
wird, dass Drittgeräte
ihn unter Verwendung des offenen UPnP-Protokolls steuern. In einer
speziellen Ausgestaltung arbeiten die UMI und eine Universalmusikvorrichtung
zusammen, um eine eigene Webseite frei zugänglich zu machen, die eine
Steuerung mittels irgendeines Webbrowsers in dem lokalen Netz erlaubt.
-
In
einer speziellen Ausgestaltung ist die Universalmusikvorrichtung
als Modul implementiert, das in ein Zielgerät integriert werden kann, um
dadurch eine Netzmusikwiedergabe in einer kundenspezifischen Verbraucherelektronikanwendung
zu unterstützten.
Das UMI-Steuerprotokoll als solches ermöglicht es, dass ein Prozessor,
beispielsweise ein Mikrokontroller oder ein Mikroprozessor, in einem
Zielgerät
interaktiv auf jede der eingebauten Funktionalitäten eines Universalmusikvorrichtungsmoduls
zugreift und die Ergebnisse solcher Aktionen synchron oder asynchron
abfragt. Das Universalmusikvorrichtungsmodul, das die UMI implementiert, kann
zusätzlich
eine Benutzerschnittstelle darstellen, die zum Senden an eine Bitmap-Anzeige oder zeichenbasierte
Anzeige oder dergleichen geeignet ist, und das Zielgerät kann die
Inhaltsaufzählungs-
und Auswahlgrundfunktionen in dem UMI-Steuerprotokoll verwenden,
um seine eigene kundenspezifische Benutzerschnittstelle (UI) zu
erzeugen. In einer Ausgestaltung weist eine UMI eine Universal-API
("application programming interface" = Anwendungsprogrammierschnittstelle)
auf, um die Kommunikation mit einer Vielfalt von Betriebssystemen
und Anwendungsprogrammen zu unterstützten.
-
Das
UMI-Steuerprotokoll stellt vorteilhafterweise eine verallgemeinerte
Nachrichtenstruktur bereit, die eine standardisierte Schnittstelle
zum Entwickeln von Anwendungen für
eine Universalmusikvorrichtung schafft, die mit einem Zielgerät integriert
ist. Dies reduziert die Komplexität des Bereitstellens digitaler
Musik- und Videoinformationen über
ein Netz beträchtlich
und beseitigt die Kosten des Unterstützens einer Schnittstelle,
die aus zahlreichen spezialisierten Nachrichten für verschiedene
spezialisierte Musikserver gebildet ist.
-
Durch
Ausgeben von UMI-Steuerprotokollbefehlen an ein Universalmedienvorrichtungsmodul über einen
seriellen Bus kann beispielsweise jedes Verbraucherelektronikprodukt
Internetradio oder Digitalmusik über
ein Heimnetz abspielen. Ein eingebettetes Universalmedienvorrichtungsmodul
kann die komplizierte Arbeit hinter den Kulissen mit seinem eingebauten
und leistungsstarken Netzwerkmusikprozessor bewältigen. Das eingebettete Universalmedienvorrichtungsmodul
konzentriert komplizierte Aufgaben, wie beispielsweise die WiFi-Zertifizierung,
WiFi-Treiber, Unterstützung
mehrerer Servertypen, digitale Rechteverwaltung, Kompatibilitätstest und
Internetradio zu einem einfachen Satz von seriellen Befehlen. Die
Flexibilität
dieses Ansatzes ermöglicht
es einem OEM, falls gewünscht,
eine vollständig
kundenspezifische Benutzerschnittstelle zu erzeugen oder die eingebauten
Grundfunktionen (Primitive) der Benutzerschnittstelle des Universalmedienvorrichtungsmoduls
zu verwenden.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Die
Erfindung wird vollständiger
in Verbindung mit der folgenden detaillierten Beschreibung zusammen
mit den beigefügten
Zeichnungen gewürdigt
werden, in denen:
-
1 eine
Darstellung ist, die herkömmliche
Musikspieler zeigt, die mit entsprechenden üblichen spezialisierten Musikservern
vernetzt sind;
-
2 eine
Blockdarstellung ist, die eine Universalmedienschnittstelle gemäß einer
Ausführungsform der
Erfindung zeigt;
-
3 eine
Blockdarstellung ist, die ein Zielgerät zeigt, das eine Universalmedienschnittstelle
gemäß einer
Ausführungsform
der Erfindung zum Zugreifen auf Musik von mehreren spezialisierten
Musikservern implementiert;
-
4 eine
Blockdarstellung einer Universalmediendatenverbindung gemäß einer
Ausführungsform der
Erfindung ist, die eine Universalmedienschnittstelle aufweist;
-
5 ein
A/V-Gerät
gemäß einer
Ausführungsform
der Erfindung als Beispiel einer Zielvorrichtung zeigt, die eine
Universalmedienschnittstelle als Teil einer Universalmediendatenverbindung
(universal media data link = "UMDL") implementiert;
-
6 eine
funktionale Blockdarstellung einer Universalmedienschnittstelle
ist, die verallgemeinerte Befehle gemäß einem UMI-Steuerprotokoll
erzeugt, wie in zumindest einer Ausführungsform der Erfindung dargelegt;
-
7 eine
Implementierung eines Universalmusikvorrichtungsmoduls (universal
music apparatus module = "UMAM") gemäß einer
Ausführungsform
der Erfindung zeigt;
-
8 ein
System gemäß einer
Ausführungsform
der Erfindung zeigt, das eine Universalmusikvorrichtung aufweist;
-
9 ein
Flussdiagramm ist, das beispielhaft ein Verfahren gemäß einer
Ausführungsform
der Erfindung erläutert,
mit dem eine Universalmusikvorrichtung ein Musikserverobjekt bildet;
-
10 ein
Beispiel eines Musikservermodells gemäß einer Ausführungsform
der Erfindung zeigt, aus dem ein Musikserverobjekt gebildet wird;
-
11 eine
Architektur gemäß mindestens
einer Ausführungsform
der Erfindung einführt,
bei der Musikserverobjekte ("MSOs") in einem Rechengerät implementiert
werden, um Zugriffe auf eine Anzahl von spezialisierten Musikservern
zu vereinheitlichen;
-
12A und 12B Beispiele
von Benutzerschnittstellen, die durch das Ul-(Benutzerschnittstellen)-Modul
implementiert werden, gemäß verschiedenen
Ausführungsformen
der Erfindung zeigen; und
-
13 die
Implementierung einer Abspielliste, die sich auf Lieder bezieht,
die in mehreren spezialisierten Servern gespeichert sind, gemäß einer
Ausführungsform
der Erfindung zeigt.
-
Gleiche
Bezugszeichen beziehen sich bei den verschiedenen Ansichten der
Zeichnungen auf entsprechende Teile. Es sei angemerkt, dass die
meisten Bezugszeichen eine oder zwei ganz links stehende Ziffern aufweisen,
die allgemein diejenige Figur identifizieren, die zuerst dieses
Bezugszeichen einführt.
-
DETAILLIERTE BESCHREIBUNG
VON AUSFÜHRUNGSBEISPIELEN
-
2 ist
eine Blockdarstellung, die eine Universalmedienschnittstelle gemäß einer
Ausführungsform der
Erfindung zeigt. Die Darstellung 200 zeigt eine Universalmedienschnittstelle
(universal media interface = "UMI") 210, die
eine Anfrage 204 von einem Zielgerät (nicht gezeigt) in einen
verallgemeinerten Befehl umwandelt, um mit einem von einem oder
mehreren spezialisierten Medienservern (nicht gezeigt) zu interagieren, wobei
zumindest zwei der spezialisierten Medienserver mit verschiedenen
Serverprotokollen arbeiten. Die Universalmedienschnittstelle 210 weist
einen Anfragedekodierer 212 und ein Musikserver-Befehlssteuerprotokollmodul
("Steuer protokollmodul") 214 auf.
Der Anfragedekodierer 212 ist derart konfiguriert, dass
er die Anfrage 204 dekodiert, um eine dekodierte Anfrage
zum Kommunizieren mit den spezialisierten Medienservern zu bilden.
Die Anfrage 204 kann beispielsweise bei einem Dateneingabegerät 202 erzeugt
werden, durch das ein Benutzer Daten eingibt, die eine Funktion
repräsentieren,
die durch das Zielgerät
ausgeführt
werden soll. Die Anfrage 204 wird ferner üblicherweise
in einem Format erzeugt, das durch ein proprietäres Anwendungsprogramm eines
Zielgeräts
definiert ist, wobei das Format zum allgemeinen Kommunizieren mit
den spezialisierten Medienservern unzureichend ist. Das Befehlssteuerprotokollmodul 214 ist
derart konfiguriert, dass es einen verallgemeinerten Befehl (generalized
command = "GC") 210 basierend
auf der dekodierten Anfrage erzeugt, um eine Antwort von einem des
einen oder der mehreren spezialisierten Medienserver hervorzurufen. Der
Begriff "verallgemeinerter
Befehl" bei einigen
Ausführungsformen
bezieht sich auf einen Befehl, der von den verschiedenen Serverprotokollen
unabhängig
ist, die den verschiedenen spezialisierten Servern zugeordnet sind.
Wie in dem in 2 gezeigten Fall ist der verallgemeinerte
Befehl 220 von den verschiedenen Serverprotokollen unabhängig, und
daher braucht weder die Anfrage 204 noch der verallgemeinerte
Befehl 220 serverspezifische Protokolle zu spezifizieren.
Das Befehlssteuerprotokollmodul 214 übermittelt ferner über eine
Datenverbindung 216 den verallgemeinerten Befehl 220.
Die Universalmedienschnittstelle 210 ermöglicht es
vorteilhafterweise, dass Konstrukteure der Zielgeräte verallgemeinerte
Befehle statt serverspezifischer Befehle verwenden, um auf die mehreren
spezialisierten Medienserver (oder Musikserver) zuzugreifen. Ein
Zielgerät
(zum Beispiel ein elektronisches Verbrauchergerät) kann als solches eine Universalmusikvorrichtung zum
Zugreifen auf Musik und musikbezogene Informationen implementieren,
ohne dass es erforderlich ist, dass das Zielgerät dienstabhängige Protokolle implementiert.
Dies vereinfacht bei der Herstellung von Verbraucherprodukten, die
auf Musik und ihre verwandten Informationen von Quellen über ein
Netz zugreifen, die Entwicklung und verringert die Zykluszeit.
-
3 ist
eine Blockdarstellung, die ein Zielgerät darstellt, das eine Universalmedienschnittstelle
zum Zugreifen auf Musik von mehreren spezialisierten Musikservern
gemäß einer
Ausführungsform
der Erfindung implementiert. Die Darstellung 300 zeigt eine
Universalmedienschnittstelle ("UMI") 310, die
in ein Zielgerät 306 eingebaut
ist, das auch ein Dateneingabegerät 302 zum Eingeben
von Eingaben und zum Bereitstellen von Ausgaben ("I/Os") 301 in
Bezug auf einen Benutzer aufweist. Das Zielgerät 306 weist auch ein
proprietäres Anwendungsprogramm
("prog") 308 auf,
das aus ausführbaren
Anweisungen besteht, die die Funktionalität für das Zielgerät 306 bereitstellen,
das ein Fernseher oder ein A/V-Empfänger sein kann. Das proprietäre Anwendungsprogramm 308 weist
herkömmlicherweise
nicht die Funktionalität
auf, auf mehrere Musikserver, die inkompatible Serverprotokolle
aufweisen, mit einem serverunabhängigen
Befehl (server-independent command = "SIC") 360 zuzugreifen.
Im Betrieb dekodiert die Universalmedienschnittstelle 310 eine
musikbezogene Anfrage (request = "R") 307,
und in Antwort darauf übermittelt
sie über
eine Universalmediendatenverbindung 320 einen verallgemeinerten
musikbezogenen Befehl, beispielsweise den SIC 360, an ein
Universalmusikvorrichtungsmodul 330. Die Universalmedienschnittstelle 310 ermöglicht es,
dass das Zielgerät 306 beispielsweise
entweder verschiedene Ermittlungsprotokolle zum Identifizieren mehrerer
spezialisierter Medienserver oder verschiedene Kommunikationsprotokolle
zum Interagieren mit den mehreren spezialisierten Medienservern oder
beide initiiert. Der Begriff "spezialisierter
Server" in manchen
Ausführungsformen,
wie hier verwendet, bezieht sich allgemein auf einen Server, der
entweder einem speziellen Ermittlungsprotokoll (discovery protocol) oder
einem speziellen Kommunikationsprotokoll oder beiden, zugeordnet
ist, wobei solche spezielle Ermittlungs- und Kommunikationsprotokolle
typischerweise mit anderen Ermittlungs- und Kommunikationsprotokollen
für einen
weiteren derartigen Server inkompatibel sind. Beispiele verschiedener
Ermittlungsprotokolle umfassen das Simple-Service-Ermittlungsprotokoll
(Simple Service Discovery Protocol = "SSDP")
und BonjourTM, das eine eingetragene Marke
von Apple Computer, Inc., ist. Beispiele verschiedener Kommunikationsprotokolle
umfassen das Univeeral-Plug-and-PlayTM-("UPnP")-Protokoll und das
Digital-Audio-Access-Protokoll ("DAAP").
-
Die
Universalmusikvorrichtung 330 weist einen Universalmediendatenverbindungsanschluss
(universal media data link adapter = "UMIA") 332 zum
Empfangen der verallgemeinerten Befehle in Übereinstimmung mit dem UMI-Steuerprotokoll
auf. Im Betrieb arbeitet die Universalmusikvorrichtung 330 so,
dass sie über
ein Netz 342 auf einen der spezialisierten Musikserver 340 zum
Austauschen von Daten zugreift, um Medien, beispielsweise Musik,
ungeachtet der auf den spezialisierten Musikservern 340 ablaufenden
Prozesse der spezialisierten Musikserver abzuspielen. Die Universalmedienvorrichtung 330 gemäß einer
Ausführungsform
der Erfindung ist eine Universalmusikvorrichtung, wie sie in der
provisorischen US-Patentanmeldung 60/642,387 dargelegt ist, die
am 7. Januar 2005 mit dem Titel "Universal
Music Apparatus for Unifying Accesses to Multiple Specialized Music
Servers" eingereicht
worden ist, und die durch Bezugnahme für alle Zwecke aufgenommen wird.
In einem Beispiel steuert der Universalmediendatenverbindungsanschluss 332 automatisch
zumindest einige der Funktionen, die in der provisorischen US-Patentanmeldung
60/642,387 als durch einen Benutzer manuell gesteuert beschrieben
sind. Die Elemente in 3 können entweder in Hardware oder
Software oder beiden implementiert sein.
-
4 ist
eine Blockdarstellung, die eine Universalmediendatenverbindung mit
einer Universalmedienschnittstelle gemäß einer Ausführungsform
der Erfindung zeigt. Bei diesem Beispiel weist die Universalmediendatenverbindung
("UMDL") 400 eine
Universalmedienschnittstelle ("UMI") 420a auf,
die über
eine Kommunikationsverbindung 430 an einen Universalmediendatenverbindungsanschluss
("UMIA") 420b gekoppelt ist.
Die Kommunikationsverbindung 430 kann ein physisches Medium,
beispielsweise ein oder mehrere Drähte, sein, oder sie kann eine
drahtlose Verbindung sein. Die Universalmediendatenverbindung 400 und
das zugehörige
UMI-Steuerprotokoll ermöglichen
es vorteilhafterweise, dass Originalausrüstungshersteller ("OEMs") Funktionalitäten eines
Musikspielers (oder Medienspielers) mit oder in ein Zielgerät ungeachtet
eines relativen Abstands des Geräts
in Bezug auf den Universalmusikspieler integrieren. Das UMI-Steuerprotokoll
stellt ferner einen standardisierten Weg zum Zugreifen auf Musik/Medien
von zwei oder mehreren verschiedenen Musik-/Medienserverprozessen
bereit.
-
Bei
einer Ausführungsform
der Erfindung implementiert die UMI 420a eine Anwendungsprogrammschnittstelle
("API") 404 für die Universalmedienvorrichtung,
die derart konfiguriert ist, dass sie Daten mit einem Betriebssystem
("O/S") und/oder einem
Anwendungsprogramm des Zielgeräts
(nicht gezeigt) austauscht. Die UMI 420a weist auch ein
Steuerprotokollmodul 450 zumindest zum Übermitteln verallgemeinerter
Befehle über
die Kommunikationsverbindung 430 auf. Der UMIA 420b weist
entsprechend ein Steuerprotokollmodul 450 auf und ist derart
konfiguriert, dass er primär
Befehle, die von der UMI 420a gesendet werden, anpasst, um
den Betrieb der Universalmusikvorrichtung zu steuern. Die Universalmedienvorrichtungs-API 404 stellt
vorteilhafterweise algorithmische Elemente (d. h. Funktionen) der
Universalmedien-(oder -musik-)Vorrichtung 402 für Software-
und Hardwareentwickler von Verbraucherelektronikgeräten bereit,
während
sie die Details des Universalmusikvorrichtungsmoduls durch Implementieren
verallgemeinerter Befehle versteckt. Die Universalmediendatenverbindung 400 bietet
eine robuste Steuerschnittstelle, die es erlaubt, dass Zielgeräte die Details des
Streaming von digitalen Medien steuern. Das UMI-Steuerprotokoll
erleichtert daher die Integration der Unterstützung von digitalen Medien
in Verbraucher-Zielgeräte
ohne Investieren beträchtlicher
Entwicklungszeit in eine neue Benutzerschnittstelle oder in komplexe
Betriebsarten.
-
5 ist
eine Blockdarstellung, die ein A/V-Gerät gemäß einer Ausführungsform
der Erfindung als Beispiel eines Zielgeräts zeigt, das eine Universalmedienschnittstelle
als Teil einer Universalmediendatenverbindung ("UMDL") 504 zeigt.
Hier ist eine Universalmusikvorrichtung 502 als Universalmedienvorrichtungsmodul
implementiert, das ein platinenbasiertes Modul (d. h. auf einer
gedruckten Leiterplatte ausgebildet) sein kann, oder es kann auf
einem einzigen Halbleitersubstrat (zum Beispiel ein System auf einem
Chip oder als ein "SOC") ausgebildet sein.
Die Universalmediendatenverbindung 504 weist eine Universalmedienschnittstelle 540 auf.
Die Universalmediendatenverbindung 504 enthält auch
eine Universalmedienvorrichtungs-API 541, die derart konfiguriert
ist, dass sie über
eine physische Kommunikationsverbindung 542 Daten mit dem
Universalmedienvorrichtungsmodul 502 austauscht. Beispiele
der physischen Kommunikationsverbindung 542 weisen parallele
Busse und/oder serielle Busse auf, die RS 232, SPI, I2S oder dergleichen implementieren. Ein Prozessor 510,
beispielsweise ein CPU oder ein Mikrokontroller, führt Programmanweisungen
(beispielsweise gespeichert in einem Programmspeicher – nicht gezeigt)
aus, die eine Universalmedienvorrichtungs-API 541 darstellen,
die derart arbeitet, dass beispielsweise eine Schnittstelle zu einem
Betriebssystem ("O/S") bereitgestellt
wird.
-
Im
Betrieb empfängt
der Universalmedienschnittstellenanschluss 544 einen verallgemeinerten
Befehl, der verwendet wird, um den Betrieb des Universalmedienvorrichtungsmoduls 502 zu
steuern. Beispielsweise kann das Universalmedienvorrichtungsmodul 502 serverspezifische
Befehle erzeugen und solche Befehle über eine Netzverbindung 552 übermitteln.
Die resultierende digitalisierte Musik und/oder musikbezogene Informationen
kommen zurück
zu dem Universalmedienvorrichtungsmodul 502, das dann Audiosignale/visuelle Signale 550 erzeugt,
die mit bestimmten CODECs und/oder Formaten kompatibel sind. Das
A/V-Gerät 500 wendet
dann die bestimmten CODECs und/oder Formate an, um Audio 554 und
Video/unbewegte Bilder 556 zu erzeugen.
-
Bei
verschiedenen Ausführungsformen
ist die Universalmedienvorrichtungs-API 541 derart ausgestaltet,
dass sie an ein Eingabe/Ausgabe-("i/o")-Steuermodul 514 ankoppelt,
um A/V-spezifische Eingaben und Ausgaben über ein Dateneingabegerät (data
entry device = "DED") 515 zu
implementieren. Das Dateneingabegerät 515 kann beispielsweise
Druckknöpfe
zum Implementieren einer Auswahl von beispielsweise Internetradiovorgaben
aufweisen. Der Benutzer kann somit Internetradiostationen wiedergeben
lassen. Der Benutzer initiiert eine Wiedergabe durch Pressen eines "Vorgabeknopfes" auf beispielsweise
einer entfernten Schnittstelle oder einer Frontpaneelschnittstelle.
Der Prozessor 510 führt
dann Anweisungen aus, die die Universalmedienvorrichtungs-API veranlassen,
einen "SpielelnternetRadioVorgabeAb"-Befehl an das Universalmedienvorrichtungsmodul 502 zu
senden, um die Wiedergabe zu starten. Bei einer Ausführungsform
ist das Universalmedienvorrichtungsmodul 502 mit Vorgaben
vorkonfiguriert, die auf ein Auswählen von Internatradiostationen
festgesetzt sind, wobei die Vorgaben durch einen Benutzer konfigurierbar
sind. Das Dateneingabegerät kann
allgemein eine Tastatur, einen Infrarot-Sender (zum Beispiel eine
Fernsteuerung) oder ähnliche
Dateneingabemechanismen zum Eingeben von Benutzereingaben in das
A/V-Gerät 500 aufweisen.
Bei einer speziel len Ausführungsform
unterstützt
das Benutzerschnittstellen-("UI")-Modul 514 die
Erzeugung einer Benutzerschnittstelle (user interface = "UI"), wie sie beispielsweise
durch eine Universalmedienvorrichtung (zum Beispiel als eingebaute
Benutzerschnittstelle) erzeugt und in 12A gezeigt
ist, oder wie sie eine inhaltsreiche Benutzerschnittstelle, wie
in 12B gezeigt, implementiert. Die Module in 5 können entweder
in Hardware oder in Software oder in beiden implementiert sein.
-
6 ist
eine funktionale Blockdarstellung einer Universalmedienschnittstelle
gemäß einer
Ausführungsform
der Erfindung, die ein UMI-Steuerprotokoll implementiert. Eine UMI 600 weist
einen Anfragedekodierer 602 und ein Befehlssteuerprotokollmodul 603 auf,
das einen Befehlserzeuger 604 und ein Transportprotokoll 618 aufweist.
Im Betrieb übersetzt
der Anfragedekodierer 602 eine Anfrage in ein Format, das
durch ein proprietäres
Programm nutzbar ist, das von einem Zielgerät verwendet wird. Der Anfragedekodierer 602 kann beispielsweise
eine Anfrage in einen asynchronen Befehl 610, einen synchronen
Befehl 612, einen Teilnahmebefehl 614 oder einen
Transportbefehl 616 dekodieren. Der Befehlserzeuger 604 erstellt
dann einen speziellen verallgemeinerten Befehl, beispielsweise einen
ListeServerAuf-Befehl,
bevor er den verallgemeinerten Befehl zur Übermittlung formatiert. Ein
solches Formatieren wird durch das Transportprotokoll 618 ausgeführt.
-
Das
Transportprotokoll 618 kann ein Implementieren von SPI,
I2C und RS-232 umfassen, ist aber nicht darauf
beschränkt.
SPI bezieht sich auf den "Serial
Peripheral Interface"-Busstandard
zum Steuern von Digitalelektronikschaltungen, die einen getakteten
seriellen Bitstrom akzeptieren. I2C ("Inter-Integrated
Circuit") ist ein
serielles Computerbusprotokoll, das von Philips, Inc., erfunden
wurde. RS-232 ist ein Standard zur seriellen binären Datenverbindung zwischen
einer Datenendeinrichtung ("DTE") und einer Datenkommunikationseinrichtung
("DCE").
-
PROTOKOLL-ZUSAMMENFASSUNG
-
Das
UMI-Steuerprotokoll wurde unter anderem im Hinblick auf Einfachheit
und Vollständigkeit
als die primären
Anforderungen ausgestaltet. Befehle und Rückmeldun gen werden allgemein
als Kurzübermittlungen über eine
Hochgeschwindigkeitsschnittstelle, wie einen seriellen Port, eine
Telnet-Verbindung, eine Parallelschnittstelle oder dergleichen,
ausgetauscht. Jeder Zielgerät-Befehl
kann aus einer kurzen ASCII-Befehls-ID-Kette, null oder einem Parameter
und einem aus einem einzigen Byte bestehenden Endezeichen (einem
Neue-Zeile-Zeichen) bestehen. Alle Befehlsrückmeldungen von dem Universalmedienvorrichtungsmodul sind
aus der Befehls-ID des Befehls gebildet, der diese Rückmeldung
verursacht hat, gefolgt von einer Ergebnis-Zeichenkette und einem
Neue-Zeile-Endezeichen.
-
1. Synchrone Befehle
-
Synchrone
Befehle werden sofort (typischerweise innerhalb 1 ms) durch das
Universalmedienvorrichtungsmodul zurückgegeben, bevor es weitere
durch das Zielgerät
ausgesendete Befehle verarbeitet (oder andere Ergebnisse von dem
Universalmedienvorrichtungsmodul zurückgibt). Ein synchroner musikbezogener Befehl
erfordert insbesondere eine Antwort von dem Universalmusikvorrichtungsmodul,
bevor das Befehlssteuerprotokollmodul einen nachfolgenden musikbezogenen
Befehl zur Ausführung übermittelt.
Ein Grundtyp eines synchronen Befehls kann durch das folgende Beispiel
des Befehls HoleTransportZustand veranschaulicht werden, der einen
Befehl darstellt, der keine Parameter aufweist und ein Einzelzustandsergebnis
zurückgibt:
-
Beispiel:
-
HoleTransportZustand
-
- HoleTransportZustand: gestoppt
-
Das
Zielgerät
sendet die Befehls-ID ("HoleTransportZustand"), gefolgt von einem
Neue-Zeile-Zeichen ('\n' oder Zeichencode
0x0a), und das Universalmedienvorrichtungsmodul antwortet mit der
Ergebniskette, die aus der Ursprungs-Befehls-ID, einem Doppelpunkt
und einem Leertrennzeichen, dem Zustandsergebnis ("gestoppt"), und dem Neue-Zeile-Abschlusszeichen
besteht.
-
A. Auflisten von und Verbinden mit Musikservern
-
Die
folgenden Befehle erlauben es, dass ein Zielgerät verallgemeinerte Befehle
zum Auflisten von, Verbinden mit und Trennen von verschiedenen Medienservern
in dem Netz erzeugt.
-
Der
UMA erfasst automatisch Ankündigungen
von Inhaltsservern unter Verwendung von UPnP/AV-, DAAP-, SlimServer-
und anderen ähnlichen
Protokollen. Zielgeräte
können
spezifizieren, welche Typen von Medienservern aufgelistet werden
sollen, und zwar durch Verwenden des unten beschriebenen SetzeServerFilter-Befehls.
Nachdem es mit dem ListeServerAuf-Befehl eine Liste von Servern
erhalten hat, kann das Zielgerät
den ServerVerbinde-Befehl verwenden.
-
(1.) ListeServerAuf-Befehl
-
Dieser
verallgemeinerte Befehl erzeugt eine Liste von Musikservern in dem
lokalen Netz. Die Liste kann nach Namen alphabethisch sortiert sein
und Server der Typen enthalten, die durch den aktuellen Serverfilter
angegeben sind, der mit dem SetzeServerFilter-Befehl gesetzt wird.
Bei einigen Ausführungsformen
werden standardmäßig alle
Servertypen aufgelistet. In einigen Fällen durchsucht der UMA automatisch
im Hintergrund das lokale Netz nach Medienservern, um die aktuelle
Liste der erfassten Server zurückzuliefern.
-
Beispiel:
-
Syntax: ListeServerAuf
-
- ListeServerAuf: ListenErgebnisGröße 3
- ListeServerAuf: ein Servername
- ListeServerAuf: ein anderer Servername
- ListeServerAuf: bevorzugte Radiostationen
- ListeServerAuf: ListenErgebnisEnde
-
(2.) SetzeServerFilter-Befehl
-
Dieser
Befehl legt fest, welche Typen von Musikservern durch den Befehl
ListeServerAuf zurückgegeben
werden sollen. Der Parameter für
SetzeServerFilter kann eine durch Leerzeichen getrennte Liste der
folgenden Kürzel
sein (eine Großschreibweise
kann ignoriert werden): "DAAP" – um Server auszuwählen, die
das DAAP-Protokoll verwenden, "UPnP" – um Server auszuwählen, die
das UPnP/AV-Protokoll
verwenden (zum Beispiel Windows Media Connect, Rhapsody, MusicMatch,
usw.), "slim" – um das quelloffene SlimServer-Protokoll
auszuwählen, "Radio" – um eine Liste von Internetradiostationen
als Servereintrag zum direkten Hören von
Internetradiostationen auszuwählen, "Flash" – um direkt ein verbundenes
Gerät auszuwählen, das
ein tragbares Medium enthält
(zum Beispiel eine Flash-Karte, die physisch in einen Steckplatz
des Geräts
eingesetzt ist), "Empfänger" – um einen AM/FM-Radioempfänger als
Audioquelle auszuwählen,
und "alle" – um alle Servertypen aufzulisten.
-
Beispiel:
-
Syntax: SetzeServerFilter [DAAP|UPnP|slim|Radio|Flash|Empfänger|alle]
-
- SetzeServerFilter DAAP
- SetzeServerFilter: OK
-
(3.) VerbindeServer-Befehl
-
Dieser
verallgemeinerte Befehl erzeugt eine Verbindung mit dem n-ten Musikserver
in einer Liste, die durch den ListeServerAuf-Befehl zurückgegeben
wird.
-
Beispiel:
-
Syntax: ServerVerbinde n
-
- ServerVerbinde 0
- ServerVerbinde: TransaktionInitiiert
- ServerVerbinde: TransaktionVollendet
- ServerVerbinde: Verbunden
-
B. Transport-Befehle
-
Die
folgenden Befehle ändern
die Wiedergabe von Musik von den Musikservern. Transport-Befehle sind
serverunabhängige
Befehle, die für
die folgenden Wiedergabeaktionen sorgen: Abspielen, Pause, Nächstes,
Vorheriges, Halt, Mischen, Wiederholen, usw.
-
Beispiel:
-
Syntax: Abspielen
-
-
II. Asynchrone Befehle
-
Asynchrone
Befehle sind Transaktionsbefehle, die zur vollständigen Ausführung einige Zeit brauchen und
daher eine etwas andere Aufrufkonvention verwenden. Ein Befehl kann
beispielsweise einen Musikserver nach einer Liste von Liedern abfragen,
was eine Netztransaktion mit dem Servergerät erfordert, die bis zu einige
Sekunden zum entweder Vollenden oder Zeitablauf-Abbruch brauchen
kann. Asynchrone Befehle liefern allgemein Ergebnisse asynchron
(zum Beispiel über
die Befehlsschnittstelle) während
der Anhängigkeit
des Befehls. Vorzugsweise sind das Zielgerät und seine API derart ausgestaltet,
dass sie die Ergebnisse asynchroner Befehle analysie ren, nachdem
diese ausgegeben worden sind. Das Zielgerät und seine API können auch einen
anhängigen
Transaktionsbefehl zu jedem Zeitpunkt während seiner Lebensdauer abbrechen,
falls irgendeine Benutzeraktion (oder ein anderes Ereignis) dies
erfordert.
-
A. Inhaltsauswahl und Wiedergabe
-
Die
folgenden Befehle erlauben es, dass ein Zielgerät verallgemeinerte Befehle
zum Auflisten, Organisieren und Wiedergeben von Musikspuren erzeugt,
die auf einem Musikserver gespeichert sind.
-
(1.) ListeAuf-Befehle
-
Diese
verallgemeinerten Befehle listen Lieder, Alben, Künstler,
Komponisten, Gattungen, Abspiellisten, ein Abspiellistenlied, usw.,
auf, wobei jeder Befehl dem folgenden Befehl ähnlich sein kann.
-
Beispiel:
-
Syntax: ListeAbspiellistenLiederAuf
-
- ListeAbspiellistenLiederAuf: TransaktionInitiiert
- ListeAbspiellistenLiederAuf: ListenErgebnisGröße 2
- ListeAbspiellistenLiederAuf: Zealots
- ListeAbspiellistenLiederAuf: Commodores – Brick House
- ListeAbspiellistenLiederAuf: ListenErgebnisEnde
- ListeAbspiellistenLiederAuf: TransaktionVollendet
-
Der
Befehlserzeuger 604 kann vorteilhafterweise einen einzigen
Befehl zum Erzeugen einer einzigen Abspielliste von Liedern erzeugen,
selbst wenn sich diese Lieder auf verschiedenen spezialisierten
Musikservern befinden, die auf verschiedene Kommunikationsprotokolle
ansprechen. Ein weiterer verallgemeinerter Befehl, beispiels weise
der Abspielen-Befehl kann ferner eine derartige Liste zum Beginnen
einer Wiedergabe unabhängig
von inkompatiblen Serverprotokollen implementieren. Der "ListeAbspiellistenLiederAuf"-Befehl kann beispielsweise
eine Abspielliste erzeugen, die Daten enthält, die das Lied "Zealots", das unter Verwendung
eines ersten Kommunikationsprotokolls von einem ersten Server bereitgestellt
wird, und das Lied "Brickhouse" repräsentieren,
das unter Verwendung eines zweiten Kommunikationsprotokolls an einem
zweiten Server abgefragt wird. 13 beschreibt
ein Beispiel eines Typs einer Abspielliste, die durch einen verallgemeinerten
Befehl gebildet wird, wodurch ein Benutzer auf die Abspielliste
zugreifen kann, um durch Aufrufen verallgemeinerter Befehle, die
unabhängig
von den verschiedenen Serverprotokollen sind, musikbezogene Operationen
(beispielsweise Abspielen ausgewählter
Lieder, Einfügen
eines Lieds in eine Abspielliste, Entfernen eines Lieds aus der
Abspielliste, usw.) auszuführen.
-
In
dem folgendem Beispiel führt
ein Zielgerät
eine Anfrage aus, die als Befehl ListeKünstlerAuf dekodiert wird, um
die Liste von Musikkünstlern
von einem Musikserver zu erhalten. Man beachte die "Verstrichene Zeit"-Spalte links von
jeder Übermittlung,
die ein mögliches
Zeiteinteilungszenario für
diesen Befehl vorschlägt (obwohl
die tatsächliche
Zeiteinteilung dieses Befehls anders und in der Praxis unvorhersehbar
sein wird).
Verstrichene
Zeit (willkürliche
Einheiten) | Transaktionen |
0 | ListeKünstlerAuf |
1 | ListeKünstlerAuf:
TransaktionInitiiert |
400 | ListeKünstlerAuf:
ListenErgebnisGröße 3 |
400 | ListeKünstlerAuf:
Counting Crows |
400 | ListeKünstlerAuf:
Dire Straits |
400 | ListeKünstlerAuf:
Led Zeppelin |
400 | ListeKünstlerAuf:
ListenErgebnisEnde |
400 | ListeKünstlerAuf:
TransaktionVollendet |
-
Obwohl
es in dem UMI-Steuerprotokoll viele asynchrone Befehle gibt, kann
im Allgemein bei einigen Ausführungsformen
ein einziger Befehl zu jeder Zeit aktiv sein. Falls das Zielgerät anstelle
des geraden aktiven asynchronen Befehls einen anderen Befehl zum
Ausführen
erfordert, sollte es den gerade ausgeführten Befehl abbrechen, bevor
es den nächsten
ausgibt (oder warten, bis dieser abgeschlossen ist). Andere Befehle
können
jedoch ausgegeben und abgeschlossen werden, während ein asynchroner Befehl
verarbeitet wird.
-
Ein
weiterer verallgemeinerter Befehl kann eine Liste von musikbezogenen
Daten erzeugen, die Informationen aufweisen, die Lieder, Alben,
Künstler,
Komponisten, Gattungen, Abspiellisten, ein Abspiellistenlied, usw.,
betreffen, wobei jeder Befehl dem folgenden Befehl ähnlich sein
kann.
-
Beispiel:
-
Syntax: HoleLiedInfo Index
-
- HoleLiedInfo 0
- HoleLiedInfo: TransaktionInitiiert
- HoleLiedInfo: ID: 11453852
- HoleLiedInfo: SpurLängeMS:
384627
- HoleLiedInfo: SpurNummer: 9
- HoleLiedInfo: Format: MP3
- HoleLiedInfo: Zustand: nicht unterstützt
- HoleLiedInfo: Titel: Lovely Day
- HoleLiedInfo: Künstler:
Bill Withers
- HoleLiedInfo: Album: Lean On Me
- HoleLiedInfo: Gattung: Rock
- HoleLiedInfo: Kommentar: flac-to-mp3 Version 1.5
- HoleLiedInfo: LiedFormat: mp3
- HoleLiedInfo: FormatBeschreibung: mp3-Audiodatei
- HoleLiedInfo: Resource[0] url:
h_t_t_p://192.168.0.150:3689/databases/1/items/1453852.
mp3?session-id=4
- HoleLiedInfo: Resource [0] Format: MP3
- HoleLiedInfo: Resource [0] Bitrate: 128
- HoleLiedInfo: Resource [0] Abtastrate: 44100
- HoleLiedInfo: Resource [0] GrößeBytes: 6154036
- HoleLiedInfo: OK
- HoleLiedInfo: TransaktionVollendet
-
Bei
diesem Beispiel ergibt der HoleLiedInfo-Befehl Attribute von beispielsweise
einem Lied mit einem Index, wie von einem spezialisierten Server
zurückgegeben.
Das Indexargument kann sich auf eine Liste von Liedern beziehen,
die beispielsweise durch einen Durchsuchungs- oder Suchbefehl (browsing
or searching command) erzeugt wird.
-
B. Suchen
-
Die
folgenden Befehle erlauben es, dass ein Zielgerät verallgemeinerte Befehle
erzeugt, um in einem oder mehreren Musikservern nach einer bestimmten
Zeichenkette als Argument zu suchen.
-
(1.) Such-Befehle
-
Diese
verallgemeinerten Befehle suchen nach Zeichenketten in Liedern,
Alben, Künstlern,
Komponisten oder all dem obigen, wobei jeder Befehl dem folgenden
Befehl ähnlich
sein kann.
-
Beispiel:
-
Syntax: SucheLieder <Such_Zeichenkette>
-
- SucheLieder ever
- SucheLieder: TransaktionInitiiert
- SucheLieder: ListenErgebnisGröße 5
- SucheLieder: El Distorto De Melodica
- SucheLieder: Tomorrow Neuer Knows
- SucheLieder: Everthing – Whos
Got The Hooch
- SucheLieder: Feuer Dream
- SucheLieder: I'm
A Believer
- SucheLieder: ListenErgebnisEnde
- SucheLieder: TransaktionVollendet
-
III. Teilnahme-Befehle
-
In
einigen Fällen
fragt ein Zielgerät über eine
lange Zeitperiode, die sich über
die Interaktion vieler synchroner und transaktionsbezogener Befehle
erstreckt, Zustandsaktualisierungen betreffend Zustandsänderungen
in dem Universalmedienvorrichtungsmodul ab. Das Zielgerät kann beispielsweise
das Anliegen haben, dass das Universalmedienvorrichtungsmodul dem
Zielgerät über seine
API automatisch jedes Mal berichtet, wenn eine Änderung des Transportzustands
auftritt, beispielsweise wenn sich die gerade abgespielte Spur ändert oder
wenn während
einer Wiedergabe ein Leerlaufen eines Zwischenspeichers (buffer
underrun) auftritt. (Andererseits können einige Zielgerätkonfigurationen
beispielsweise bevorzugen, durch Abfragen des tatsächlichen
Transportzustands mit einem synchronen Befehl, der alle 500 Millisekunden
ausgegeben wird, nach diesen Zustandsänderungen zu fragen.) Um diese
Art einer langfristigen Zustandsbenachrichtigung einzurichten, gibt
es einen Satz von Befehlen, die Teilnahme-Befehle genannt werden
und das Universalmedienvorrichtungsmodul veranlassen, asynchron
Zustandsaktualisierungen über
die Universalmedienschnittstelle, oder die UMI, bekanntzugeben,
immer wenn eine entsprechende Zustandsänderung auftritt. (Man beachte,
dass diese Zustandsaktualisierungen mit Ergebnissen der transaktionsbezogenen
Befehle und mit Zwischendurch-Ausgaben synchroner Befehle zusammenhängen können.)
-
Bei
dem folgenden Beispiel nimmt das Zielgerät an Transportzustands-Aktualisierungsereignissen
teil und gibt dann während
einer Wiedergabe den Nächstes-Befehl
aus (um zu der nächsten
Spur zu springen).
Verstrichene
Zeit (willkürliche
Einheiten) | Transaktion |
0 | NehmeAnTransportAktualisierungsEreignissenTeil |
1 | NehmeAnTransportAktualisierungsEreignissenTeil:
ok |
1 | TransportEreignis:
Abspielen |
1000 | Nächstes |
1000 | Nächstes:
ok |
1005 | TransportEreignis:
Spurwechsel |
1010 | TransportEreignis:
Zwischenspeichern |
2000 | TransportEreignis:
Abspielen |
-
IV. Andere Befehle
-
A. Listenergebnisse
-
Einige
Befehle (wie der zuvor erwähnte "ListeKünstlerAuf"-Befehl) geben eine
Liste von Ergebnissen zurück.
Diese Listen können
manchmal in der Größe unhandlich
sein und in den extremsten Fällen
annähernd 10.000
Einträge
aufweisen (Auflisten aller Lieder in einer umfangreichen Musikbibliothek).
Das UMI-Steuerprotokoll weist ein Verfahren zum Abfragen von Teillistenergebnissen
von diesen Befehlen auf.
-
Das
Zielgerät
und/oder seine API können
durch Ausgeben eines SetzeListenErgebnisTyp-Befehls den aktuellen
Listenergebnistyp zwischen "vollständig" und "teilweise" umschalten, was
alle nachfolgenden Befehle, die Listenergebnisse zurückgeben,
veranlasst, Ergebnisse in einer speziellen Art zurückzugeben.
Das Zielgerät
und/oder seine API verwenden in dem Teilergebnismodus den Befehl "HoleListenErgebnis", um einen Teilsatz
der Listenergebnisse zu durchlaufen, der durch null-basierte numerische
Indexzahlen spezifiziert wird. Man beachte, dass allgemein zu jedem
Zeitpunkt je ein einziger Satz von Ergebnissen durchlaufen werden kann;
die Ausgabe eines weiteren Befehls, der Listenergebnisse erzeugt,
ersetzt den aktuellen Satz von Listenergebnissen, die möglicherweise
nicht länger
zugänglich
sind. In dem folgenden Beispiel verwendet der Client Teilergebnisse,
um Lieder auf einem Musikserver zu durchsuchen.
Verstrichene
Zeit (ms) | Transaktionen |
0 | SetzeListenErgebnisTyp
teilweise |
1 | SetzeListenErgebnisTyp:
ok |
2 | ListeLiederAuf |
2 | ListeLiederAuf:
TransaktionInitiiert |
5000 | ListeLiederAuf:
ListenErgebnisGröße 5123 |
5000 | ListeLiederAuf:
TransaktionVollendet |
5001 | HoleListenErgebnis
0 2 |
5002 | HoleListenErgebnis:
ListenErgebnisGröße 3 |
5002 | HoleListenErgebnis:
Ace of spades |
5002 | HoleListenErgebnis:
Alison |
5002 | HoleListenErgebnis:
All Mixed Up |
5003 | HoleListenErgebnis:
ListenErgebnisEnde |
-
B. UMA-erzeugte Benutzerschnittstelle
-
Je
nach dem Anspruch des Zielgeräts
können
Zielgeräte
das Anliegen haben, die Fähigkeit
des Universalmedienvorrichtungsmoduls zum Erzeugen einer Benutzerschnittstelle
zu nutzen. Das Universalmedienvorrichtungsmodul kann eine gerasterte
(bitmapped) oder zeichenbasierte Benutzerschnittstelle ("UI") unterhalten, die
an das Zielgerät
unter Verwendung der UMI-Steuerschnittstelle als Bitstrom (für eine Bitmap-Anzeige) oder als
Zeichenketten (für
zeichenbasierte Anzeigen) übertragen
werden kann. Beispielsweise kann man SoundBridge der Firma Roku
als Beispiel einer solchen von dem Universalmedienvorrichtungsmodul
erzeugten Benutzerschnittstelle ("UI")
betrachten.
-
Um
mit der UI des Universalmedienvorrichtungsmoduls zu interagieren,
sollte ein Zielgerät
unter Verwendung eines Universalmedienvorrichtungsmodulbefehls "IrBefehlAbsenden" IR-Befehle (d. h. "Infrarot"-Befehle, im Grunde
genommen die Art von Knöpfen,
die man auf einer Fernsteuerung findet) ausgeben. Falls man beispielsweise
den MENÜ-Befehl
absendet, dann wird in den meisten Fällen die durch das Universalmedienvorrichtungsmodul
erzeugte UI ein Menü mit
einer Liste von Optionen anzeigen, aus denen der Benutzer auswählen kann.
-
Man
kann, um die physische Anzeige hinsichtlich Änderungen an der durch das
Universalmedienvorrichtungsmodul erzeugten UI aktuell zu halten,
an Anzeigen-Aktualisierungsereignissen
teilnehmen (um immer dann eine Benachrichtigung zu empfangen, wenn
sich die UI geändert
hat), oder man kann einen Anzeigeaktualisierungszähler abfragen,
oder man kann einfach die Anzeigedaten (unter Verwendung des Befehls "HoleAnzeigeDaten") mehrmals pro Sekunde
herunterladen.
-
7 zeigt
die Implementierung eines Universalmusikvorrichtungsmoduls ("UMAM") gemäß einer Ausführungsform.
Das UMAM 720 weist einen UMIA 722 auf und implementiert über Verbindungen 730 mit einem
oder mehreren Zielgeräten
ein UMI-Steuerprotokoll. Beispiele von Zielgeräten weisen eine drahtloses Telefon 740,
eine Fernsteuerung 742, einen persönlichen Digitalassistenten
("PDA"), einen AN-Empfänger 746 und
einen Fernseher 748 auf. Bei einigen Ausführungsformen
kann der UMA 720 in einem Gehäuses für jedes der Zielgeräte 740 bis 748 enthalten
sein. Wie oben beschrieben, kommuniziert der UMA 720 über das
Netz 704 mit spezialisierten Musik-(oder Medien-)Servern 702.
Bei einer Ausführungsform
kann der UMA 720 in einem "autonomen Modus" arbeiten, in dem der Host-Prozessor 510 in 5 in
einem bestimmten Zielgerät fehlt
oder abgeschaltet ist. In solch einer Situation kann der UMA 720 unter
Verwendung einer Ethernet-Verbindung, einer drahtlosen Verbindung
oder irgendeiner anderen Schnittstelle gesteuert werden, die beispielsweise
entweder Telnet oder die eingebaute Webseite verwendet. Bei einer
Ausführungsform
weist der UNA 720 die Funktionalität einer SoundBridgeTM und optional einer HD- PhotoBridgeTM auf,
die beide von Roku, LLC, aus Palo Alto, Kalifornien, hergestellt
werden.
-
8 zeigt
ein System 800 gemäß mindestens
einer Ausführungsform
der Erfindung, das eine Universalmusikvorrichtung aufweist. 8 zeigt
insbesondere eine Universalmusikvorrichtung 850, die über ein Netz 802 mit
einer Anzahl von Musikservern gekoppelt ist. Die Universalmusikvorrichtung 850 ist
derart konfiguriert, dass sie Daten mit einem Musikserver ("1") 812, einem Musikserver ("2") 822 und einem Musikserver ("M") 832 austauscht, die einen
Serverprozess ("A") 814, einen
Severprozess ("B") 824 bzw.
einen Serverprozess ("N") 834 implementieren.
Diese Serverprozesse sind jeweils verschieden und als solche zueinander
inkompatibel. Jeder Serverprozess kann insbesondere entweder ein
eigenes Ermittlungsprotokoll oder ein eigenes Kommunikationsprotokoll
oder beide repräsentieren,
sowie jedes andere Protokoll, das zum Liefern von Musik an einen
Client-Musikspieler verwendbar ist. Bei einer speziellen Ausführungsform
ist das Netz 802 ein lokales Netz, beispielsweise ein digitales
Heimnetz (zum Beispiel verdrahtet oder drahtlos), und die Musikserver 812, 822 und 832 bestehen
jeweils aus einem Rechengerät,
das derart konfiguriert ist, dass es Anweisungen ausführt, die
die Serverprozesse repräsentieren.
Man beachte, dass jeder der Musikserver 812, 822 und 832 einen
Speicher (nicht gezeigt) zum Speichern von Musikdaten und musikbezogenen
Daten in einer Datenstruktur aufweisen oder an diesen koppeln kann.
Bei mindestens einer Ausführungsform
werden verschiedene Datenzugriffsprotokolle für verschiedene Musikserver
zum Interagieren mit (zum Beispiel Abfragen) solcher Datenstrukturen
verwendet.
-
Die
Universalmusikvorrichtung 850 ist vorteilhafterweise derart
konfiguriert, dass sie automatisch Musikserver und die darin implementierten
Serverprozesse erfasst und identifiziert. Bei verschiedenen Ausführungsformen
ist jeder der Serverprozesse in den Musikservern 812, 822 und 832 durch
die Universalmusikvorrichtung 850 detektierbar. Das heißt, die
Universalmusikvorrichtung 850 ist derart konfiguriert,
dass sie die verschiedenen Typen von Serverprozessen 814, 824 und 834 erfasst,
die sie erfassen kann (d. h. vor der Ermittlung vorherbestimmt).
Die Universalmusikvorrichtung 850 ist ferner derart konfiguriert,
dass sie auf Musik und verwandte Informatio nen unabhängig von
den grundlegenden Kommunikations- und/oder Datenzugriffsprotokollen
zugreift. Die Universalmusikvorrichtung 850 koppelt als
solche an Musikserver an, die sowohl Durchsuch- als auch Such-(oder
Abfrage-)Fähigkeiten
bereitstellen, sowie an Basismusikserver, die nur Durchsuchfähigkeiten
bereitstellen. Die Begriffe "durchsuchen" und "durchsuchbar" werden, wie hier
verwendet, bei manchen Ausführungsformen
verwendet, um ein Verfahren zum Exportieren von Daten von einem
Musikserver zu beschreiben, in dem sich die Daten befinden. Ein
Durchsuchen greift durch ein rekursives Erkunden einer Hierarchie
von Verzeichnissen oder Ordnern auf Daten zu. Einem Benutzer wird
im Allgemeinen eine Liste von Indikatoren angezeigt (beispielsweise
Künstler,
Gattung, usw.), die den Mutterordnern zugeordnet sind und die, wenn
sie ausgewählt
werden, Einträge
des ausgewählten
Ordners dem Benutzer anzeigen. Als Beispiel betrachte man, dass
ein Benutzer wünscht,
alle "Künstler" einer Musikbibliothek
zu durchsuchen. Bei Initiieren von "Durchsuche KÜNSTLER" kann die Benutzerschnittstelle eine
alphabetische Auflistung der Künstler
anzeigen. Der Benutzer scrollt dann die Liste hinauf und hinunter,
bis ein gewünschter
Künstler
gefunden ist. Die Begriffe "suchen" und "suchbar" werden bei manchen
Ausführungsformen
verwendet, um ein Verfahren zum Exportieren von Daten von einem
Musikserver zu beschreiben, bei dem Daten unter Verwendung einer
Abfragesprache oder von Anweisungen abgefragt werden können (d.
h. ohne Durchlaufen einer Hierarchie von Ordner). Ein Suchen oder
Abfragen eines Musikservers verwendet Marken, die beispielsweise
einen Titel, einen Künstler,
ein Album, ein Jahr, eine Gattung, einen Komponisten und dergleichen
spezifizieren. Beispielsweise betrachte man, dass ein Benutzer wünscht, nach
einem bestimmten "Künstler" mit dem Namen KÜNSTLER EINS
zu suchen. Bei Initiieren von "Suche
KÜNSTLER" wird die Benutzerschnittstelle
ein Textfeld darstellen, so dass der Benutzer eine Kette eines oder
mehrerer alphanumerischer Zeichen eingeben kann, die mit einer Datenstruktur
einer durchsuchbaren Datenbank verglichen werden. Der Benutzer wird
insbesondere einige oder alle der folgenden Zeichen K, Ü, N, S,
T, L, E, R, _, E, I, N und S eingeben, um eine Abfrage zu bilden. Nachdem
eine Übereinstimmung
gefunden ist, wird dem Benutzer der Künstlername KÜNSTLER_EINS
vorgelegt. Man beachte, dass UPnP- und DAAP-Musikserver Kommunikations-
und Datenzugriffsprotokolle zum Ausführen von Abfragen aufweisen
und durch Exportie ren von Musikdaten und musikbezogenen Daten antworten
können,
die den Abfrage- oder
Suchparametern entsprechen, die durch eine Benutzereingabe spezifiziert
werden. Man beachte auch, dass Daten, die in einem "Nur-Durchsuchen"-Server Musik repräsentieren, nicht
zur Abfrage unter Verwendung einer Abfragesprache konfiguriert sind,
anders als bei einem Musikserver mit Suchfunktion. Der Begriff "Musikdaten" in manchen Ausführungsformen
bezieht sich, wie hier verwendet, auf Daten, die verwendet werden,
um Musik zu erzeugen (man beachte, dass eine Musikdatei ausreichend Musikdaten
enthält,
um ein oder mehrere Lieder wiederzugeben), während sich der Begriff "musikbezogene Daten" sich auf Zusatzdaten
bezieht, die die Musikdaten beschreiben (zum Beispiel Daten, die
Künstlerinformationen
repräsentieren)
oder die Wiedergabefunktionen betreffen. Der Begriff "Medien" bezieht sich bei
einigen Ausführungsformen
auf Daten, die verwendet werden, um entweder visuelle Bilder oder
Schall zu erzeugen.
-
Daher
kann die Universalmusikvorrichtung 850 erfindungsgemäß als das
einzige Client-Rechengerät in
einem Netz unvereinbarer Serverprozesse dienen. Sie kann ferner
eine Benutzerschnittstelle schaffen, um verallgemeinerte Benutzereingaben
und -ausgaben, die von den spezialisierten Serverprozessen unabhängig sind,
ohne einen beispielsweise manuellen Eingriff zu übergeben (zum Beispiel ohne
ein Modifizieren ausführbarer
Anweisungen zum Anpassen an jeden spezialisierten Serverprozess).
Im Gegensatz dazu beruhen übliche
Techniken zum Liefern von Musik an Client-Musikspieler auf den Musikspielern,
die derart ausgestaltet sind, dass sie sich an diejenigen Serverprozesse
eines speziellen Musikservers anpassen. Musikspieler können im
Allgemeinen nicht mehr als einen Typ eines Serverprozesses unterstützen. Man
beachte, dass die Universalmusikvorrichtung 850, wie unten
diskutiert, optional eines oder mehrere zusätzliche Module aufweist.
-
Die
Universalmusikvorrichtung 850 kann als Client-Rechengerät angesehen
werden, das eine Programmmaschine 851 und ein Universalermittlungsmodul 860 aufweist,
wobei beide jeweils aus Hardware oder Software oder beidem bestehen
können.
Die Programmmaschine 851 weist verschiedene Schichten auf,
die Abstraktionen von Programmanweisungen repräsentieren und die eine obere
Schicht 852, eine Objekt schicht 854 und eine Serverprozessschnittstellenschicht 856 aufweisen.
Die Programmmaschine 852 arbeitet derart, dass sie die
verschiedenen Funktionen der Universalmusikvorrichtung 850,
die hier diskutiert werden, ausgehend von einem Akzeptieren von
Benutzereingaben bis zu einem Erzeugen von Benutzerausgaben steuert und
diese erleichtert. Die Programmmaschine 852 arbeitet auch
derart, dass sie den Ermittlungsprozess des Universalermittlungsmoduls 860 steuert.
Die obere Schicht 852 weist Datenpräsentationen auf höherer Ebene und/oder
ausführbare
Programmanweisungen zum Ausführen
von Musikdatenbankabfragen auf, wie zum Beispiel zum Bereitstellen
einer Benutzerschnittstelle (zum Beispiel zum Akzeptieren von Abfragedaten
und zum Anzeigen musikbezogener Daten) sowie zur Anwendungsschicht-Verarbeitung.
Die Objektschicht 854 weist gemäß einer Ausführungsform
der Erfindung Datenrepräsentationen
auf mittlerer Ebene und/oder ausführbare Programmanweisungen
zum Unterstützen
von Repräsentationen
von Musikservern als Musikserverobjekte ("MSOs") 853 und
von anderen musikbezogenen Objekten auf. Objekte, wie zum Beispiel
das Musikserverobjekt 853, werden verwendet, um relativ
anspruchsvolle Ermittlungs-, Kommunikations- und/oder Datenzugriffsprotokollanweisungen
in Musikserverobjekte (und umgekehrt) derart zu übersetzen oder darauf abzubilden, dass
sie von jedem spezialisierten Serverprozess unabhängig sind.
Die Funktionalitäten
als solche, die durch das Musikserverobjekt 853 definiert
sind, wie zum Beispiel "Suche
Titel = LIEDTITEL",
können
in einer Art ausgedrückt
werden, die leicht von denen, die wenig oder keine Erfahrung im
Programmieren der spezialisierten Serverprozesse haben, verstanden
wird. Bei manchen Ausführungsformen
weist ein Abschnitt der Objektschicht 854 zumindest einen
Speicher zum Speichern der Musikserverobjekte auf. Die Serverprozessschnittstellenschicht 856 weist
Datenrepräsentationen
auf niedriger Ebene und/oder ausführbare Programmanweisungen
zum Verwalten des Datenaustauschs zwischen der Universalmusikvorrichtung 850 und
den Musikservern 812, 822 und 832 auf.
-
Die
Serverprozessschnittstellenschicht 856 weist, im Ganzen
oder im Teil, Serverprozessschnittstellen, wie zum Beispiel eine
Serverprozess-A-Schnittstelle ("SP
A I/F") 856a,
eine Serverprozess-B-Schnittstelle ("SP B I/F") 856b und eine Serverprozess-C-Schnittstelle
("SP N I/F") 856c,
auf. Jede Serverprozessschnittstelle besteht aus einem oder mehreren
Sätzen
von ausführbaren
Anweisungen, die für
einen der Serverprozesse 814, 824 und 834 spezifisch
sind, wobei jeder Satz auf eine entsprechende verallgemeinerte Serverfunktion
abgebildet wird. Jede Serverprozessschnittstelle ist insbesondere
derart konfiguriert, dass sie Daten in Übereinstimmung mit einem eigenen
Kommunikationsprotokoll austauscht, wie beispielsweise solchen Kommunikationsprotokollen,
die mit oder als Teil von beispielsweise entweder dem UPnP- oder
DAAP-Prozess implementiert sind. Als Beispiel betrachte man, dass
eine verallgemeinerte Serverfunktion "Suche", die von jedem Musikserverprozess unabhängig ist,
mit dem folgenden Pseudocode-Stück
implementiert ist: "Suche
Albumtitel = ALBUMTITEL".
Dieser Code ist derart konfiguriert, dass er in Sammlungen von Alben
nach solchen Alben sucht, die die Zeichenkette "ALBUMTITEL" in dem Titel enthalten. Falls diese
verallgemeinerte Serverfunktion auf die Serverprozess-A-Schnittstelle 856a abgebildet
werden würde,
dann würde
ein erster Satz von ausführbaren
Anweisungen einen UPnP-Prozess implementieren, wenn der Musikserver
("1") 812 ein
UPnP-Server ist. Falls aber die verallgemeinerte Serverfunktion
auf die Serverprozess-B-Schnittstelle 856b abgebildet werden
würde,
dann würde
ein zweiter Satz von ausführbaren
Anweisungen einen DAAP-Prozess implementieren, wenn der Musikserver
("2") 822 ein
DAAP-Server ist. Man beachte, dass die Serverprozess-C-Schnittstelle
("SP N I/F") 856c ausführbare Anweisungen
zum Implementieren eines Prozesses für jeden anderen Typ eines Musikservers,
wie beispielsweise eines Slim-Servers, der eine quelloffene Software
ist, repräsentieren
kann.
-
Das
Universalermittlungsmodul 860 ist derart konfiguriert,
dass es automatisch vernetze Geräte,
die zum Übermitteln
von Daten an die Universalmusikvorrichtung 850 fähig sind,
ermittelt und identifiziert, wobei zumindest eines dieser Geräte ein Musikserver
ist. Bei einer speziellen Ausführungsform
besteht das Universalermittlungsmodul 816 aus einer Sammlung
von spezialisierten Ermittlungsprotokollen (nicht gezeigt) zum Erfassen
der Netzmusikserver. Beispiele von Ermittlungsprotokollen weisen
SSDP und Rendezvous (d. h. BonjourTM von
Apple Computer, Inc.) auf. Das Universalermittlungsmodul 860 arbeitet
derart, dass es die Anwesenheit eines Musikservers erfasst und die
Fähigkeiten
des Servers bestimmt. Es identifiziert insbesondere den Identifikator
(oder Namen) des Musikservers und den Typ des Serverprozesses, der
darin enthalten ist (beispielsweise UPnP, DAAP, usw.). Jeder Serverprozess-Typ
tauscht allgemein Daten mit der Universalmusikvorrichtung 856 in Übereinstimmung
mit einem eigenen Kommunikationsprotokoll aus. Er kann auch bestimmen,
ob gefordert wird, dass sich der Benutzer anmeldet, ob ein Passwort
erforderlich ist, ob der Musikserver durchsuchbar und/oder in ihm
suchbar ist, oder andere ähnliche
Serverfähigkeiten.
Das Universalermittlungsmodul 860 ist an einen Objektverwalter
("obj mgr") 855, gekoppelt,
der derart konfiguriert ist, dass er eine Instanz eines Musikserverobjekts 853 für jeden
erfassten Musikserver bildet. Das Universalermittlungsmodul 860 übergibt
insbesondere die Fähigkeiten
eines erfassten Musikservers an den Objektverwalter 855,
der wiederum eine Anzahl von anwendbaren verallgemeinerten Funktionen
dem Musikserverobjekt 853 zuordnet, so dass ein Benutzer
mit der Benutzerschnittstelle (nicht gezeigt) interagieren (beispielsweise
eine Abspielliste suchen) kann.
-
Man
beachte ferner, dass die Universalmusikvorrichtung 850 ein
CODEC-/Formatmodul 864 aufweist, um einen weiten Bereich
von Musik-CODECs und -formaten, wie zum Beispiel Audio Codec '97 ("AC'97"), Windows Media
Audio ("WMATM")
von Microsoft, Inc., Advanced Audio Coding ("AAC"),
Waveform Audio Format ("WAV"), Audio Interchange
File Format ("AIFF"), das von Apple
Computer, Inc., mitentwickelt wurde, Linear Pulse Code Modulation
("LPCM") oder dergleichen,
zu unterstützen.
Das CODECs/Formatmodul 864 kann ferner auch das M3U-Format
(d. h. MPEG Version 3.0), das eine einfache textbasierte Liste mit
einer Dateiendung ".m3u" ist, das Advanced-Stream-Redirector-("ASX")-Format, das ein
Typ einer XML-Metadatei ist, die derart ausgestaltet ist, dass sie
eine Liste von Mediendateien bereitstellt, das Audio-Video-Interleave-("AVI")-Medienformat, das
von Microsoft, Inc., eingeführt
wurde, ein Abspiellistendateiformat ("PLS")
zum Speichern von Medienabspiellisten oder dergleichen, unterstützen.
-
Die
Universalmusikvorrichtung 850 weist zusätzlich ein Protokollmodul 863 zum
Bereitstellen von Netzkommunikationsprotokollen, wie zum Beispiel
IP, UDP und TCP, sowie von Serverprotokollen, einschließlich UPnP
AV, DAAP, OpenTalkTM von Apple Computer,
Inc., SlimServer und dergleichen, auf. Sie weist auch ein Modul 866 zur
digitalen Rechteverwaltung ("DRM") zum Entschlüsseln relevanter
Datenströme,
wie zum Beispiel eines Datenstroms, der in Übereinstimmung mit Windows
Media Digital Rights Management 10 ("WM DRM10") von Microsoft, Inc., verschlüsselt ist,
auf. Ein Medienbrowsermodul 868 kann eine Implementierung eines
DAAP-(d. h. iTunesTM von Apple Computer,
Inc.)-Medienbrowser, des Windows-Media-Connect-Medienbrowsers, eines generischen UPnP-Medienbrowsers,
eines Internetradiobrowsers oder dergleichen, unterstützen.
-
Die
Universalmusikvorrichtung 850 kann einen Radio-("AM/FM")-Empfänger 862 zum
Empfangen von über
Funkwellen gesendeten AM-Radio- oder FM-Radio-Informationen oder
von beiden aufweisen. Sie kann auch einen Port 862 zum
Empfangen von tragbaren Medien 860, wie zum Beispiel eines
Flash-Speicher-basierten Mediums, aufweisen. Die Universalmusikvorrichtung 850 erleichtert
vorteilhafterweise den Zugriff durch ein Zielgerät auf den Radioempfänger 862 und
die tragbaren Medien 890 als Pseudo-Musikserver. In zumindest
einer Ausführungsform
ist der UMIA 870 derart konfiguriert, dass er eine Telnet-Verbindung,
beispielsweise ein Einrichten einer Telnetsitzung unter Verwendung
entweder eines TCP-Ports 5555 (zum Beispiel bei der IP-Adresse der
Universalmusikvorrichtung 850), eines TCP-Ports 4444 (zum
Beispiel eines Telnet-Vorgangs von einem Client-Host zum Port 4444
bei der IP-Adresse)
oder dergleichen, unterstützt.
Als solches gibt es andere Arten, verallgemeinerte Befehle an die
Universalmusikvorrichtung 850 ohne Verwendung einer UMDL
zu senden. Wie als Nächstes
beschrieben, implementiert die Universalmusikvorrichtung 850 ein beispielhaftes
Verfahren in 9, das Musikserver ermittelt
und die Musikserverobjekte 853 als Instanzen solcher Musikserver
bildet.
-
9 ist
ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform
der Erfindung beispielhaft erläutert,
mit dem die Universalmusikvorrichtung ein Musikserverobjekt bildet
oder implementiert. Bei Schritt 902 verwendet ein Universalermittlungsmodul
ein oder mehrere relevante Ermittlungsprotokolle, um Sondierungsdaten über ein
Netz an vernetzte Geräte
zu übermitteln
oder zu senden. Jeder Musikserver, der derart konfiguriert ist,
dass er das Protokoll spezieller Sondierungsdaten erkennt, antwortet
mit demselben Protokoll. Ein antwortender Musikserver gibt typischerweise
seinen Servertyp, beispielsweise UPnP oder DAAP, an das Universalermittlungsmodul
zurück.
Bei Schritt 904 bestimmt das Universalermittlungsmodul
die Fähigkeiten
eines antwortenden Musikservers bezüglich eines Musikservermodells
in 10, wobei einige dieser Fähigkeiten hier diskutiert werden.
Ein Objektverwalter empfängt
diese Fähigkeiten
und verwendet sie dann, um eine verallgemeinerte Repräsentation
eines Musikservers, der bei Schritt 902 ermittelt worden
ist, zu bilden.
-
Zumindest
eine der Fähigkeiten
definiert, ob der Musikserver eine Suchfunktion unterstützt (d.
h. ob mit jedem Grad von Granularität unter Verwendung eines speziellen
Datenzugriffprotokolls abgefragt werden kann) oder ob er nur die
Fähigkeit
hat, Datenstrukturen, die Musik und andere musikbezogene Daten enthalten,
zu durchsuchen. Falls der Objektverwalter bei Schritt 906 bestimmt,
dass der Server eine Suchfunktion unterstützt, dann bildet der Objektverwalter
bei Schritt 910 ein Musikserverobjekt, das einen ersten
Satz von verallgemeinerten Funktionalitäten hat, die jeweils auf serverabhängige Sätze von
ausführbaren
Anweisungen abgebildet oder diesen zugeordnet werden. Dieses Abbilden
erfolgt bei Schritt 930. Falls aber bei Schritt 906 der
Objektverwalter bestimmt, dass der Server keine Suchfunktion unterstützt (d.
h. er stellt nur Durchsuchfähigkeiten
bereit), dann bildet der Objektverwalter bei Schritt 920 ein
Musikserverobjekt, das einen zweiten Satz von verallgemeinerten
Funktionalitäten
hat. In einer speziellen Ausführungsform
wird der erste Satz von verallgemeinerten Funktionen auf Musikserver
abgebildet, die zum Suchen und Abfragen der Musikdateien fähig sind,
wohingegen der zweite Satz auf Musikserver abgebildet wird, die
nur zum Durchsuchen fähig
sind. Bei Schritt 932 kann ein Benutzer über eine
Benutzerschnittstelle die verallgemeinerten Funktionen des Musikservers
nutzen, um Musik abzuhören
oder deren Wiedergabe zu verwalten. In manchen Ausführungsformen
tritt eine Aktivität
bei Schritt 932 im Anschluss an die "Initialisierung" des Servers auf, wobei die Initialisierung
eine aktive Verbindung mit einem Musikserver einrichtet.
-
10 zeigt
ein Beispiel eines Musikservermodells gemäß einer Ausführungsform
der Erfindung, aus dem ein Musikserverobjekt gebildet wird. Das
Musikservermodell 1000 stellt eine Anwendung, wie zum Beispiel
eine Benutzerschnittstellenanwendung, mit einer gemeinsamen Ansicht
und einer verallgemeinerten Art eines Koppelns an ein Element der
Serverfunktionalität,
die in Übereinstimmung
mit einem spezialisierten Serverprozess implementiert ist, bereit.
Wie gezeigt, ist das Musikservermodell 1000 einem Namen 1002 zugeordnet,
der eine Eigenschaft sein kann, die auf eine Musikbibliothek hinweist,
die mit einem bestimmten Serverprozess implementiert ist. Beispielsweise
kann das Musikservermodell 1000 "Dan's
Music Library" dem
Namen 1002 zuordnen. Eine Universalmusikvorrichtung wird
diesem Namen auf ihrer Benutzerschnittstelle anzeigen, so dass er
ausgewählt
werden kann. Bei Bestimmen der Fähigkeiten
eines bestimmten Servers wird ein Objektverwalter seine Fähigkeiten 1004 gemäß den zugeordneten
Fähigkeiten
von 1006 bis 1014 definieren. Wie gezeigt, weist
die Eigenschaft 1006 darauf hin, ob der bestimmte Server
durchsuchbar ist (d. h. "J" gibt Ja an) oder
nicht durchsuchbar ist (d. h. "N" gibt Nein an), während die
Eigenschaft 1008 angibt, ob der bestimmte Server eine Suchfunktion
unterstützt
oder nicht. Die Eigenschaft 1010 gibt an, ob der Musikserver ein "Ordner durchsuchen" ("Folder Browse", manchmal als "Nach Ordnern durchsuchen" ("Browse-by-Folder") bezeichnet) unterstützt, das
typischerweise bei UPnP-Servern implementiert ist, die keine Suchfähigkeiten
implementieren. Der Begriff "Ordner
durchsuchen", wie
hier verwendet, wird in manchen Ausführungsformen verwendet, um
eine Fähigkeit
eines Musikservers zu beschreiben, eine Musikbibliothek (d. h. eine
Sammlung von Musik- und musikbezogenen Dateien) als eine Hierarchie
eines oder mehrerer Ordner, wie zum Beispiel eines Ordners namens "90s Tunes", zu repräsentieren.
Bei dieser Hierarchie kann ein Benutzer in jeden Ordner eindringen,
um manuell nach einer Musikdatei zu suchen. Beispielsweise kann
ein Musikserver, der ein "Ordner durchsuchen" implementiert, die
Ordner hierarchisch anordnen, um "Gattung" als Mutter-Ordner zu repräsentieren,
wobei einer der Töchterordner "Rockmusik" ist. Dann kann ein "Künstler"-Ordner, der in dem "Rockmusik"-Ordner enthalten ist, Ordner für die "Alben" des Künstlers
enthalten, wobei jeder Ordner wiederum Lieder und/oder Lieddatendateien
enthält.
Die Eigenschaft 1012 und die Eigenschaft 1014 geben
an, ob der Server eine Anmeldung beziehungsweise ein Passwort erfordert.
-
Sobald
die Eigenschaften 1006 bis 1014 bestimmt sind,
bestimmen diese Eigenschaften vorher, welche Funktionen der verallgemeinerten
Funktionen 1020 bezüglich
eines bestimmten Servers verwendbar sind. Jede der verallgemeinerten
Funktionen 1020 ist einem Satz von ausführbaren Anweisungen, die serverabhängig sind,
zugeordnet oder auf diese abgebildet, um beispielsweise die Serverprozessschnittstellen 856a bis 856c zu
realisieren (8). Eine Initialisierungsfunktion 1022 ist
einem Satz von Anweisungen zugeordnet, die einen Musikserver initialisieren,
um eine Verbindung zwischen dem Musikserver und der Universalmusikvorrichtung
einzurichten. Eine Anmeldefunktion 1024 bildet auf Anweisungen
ab, die einen Prozess zum Anmelden bei einem Serverprozess implementieren.
Eine "Hole Liedzahl"-Funktion 1026 ist
einem Satz von Anweisungen zugeordnet, die beispielsweise eine Anzahl
von Liedern in einer Sammlung von Liedern bestimmen, wobei die Anzahl
von Liedern durch ein Argument, beispielsweise ALBUM, beschrieben
werden kann. Als solche kann "Hole
Liedzahl (ALBUM)" eine
Anzahl von Liedern in einem Album abfragen. Eine "Hole Lied"-Funktion 1028 bildet
auf Anweisungen ab, die typischerweise durch Abfragen einer relationalen
Datenstruktur eines Musikservers einen Prozess zum Abfragen eines
oder mehrerer Lieder implementieren. Eine "Hole Abspielliste"-Funktion 1030 bildet Benutzereingaben
auf serverabhängige
Anweisungen zum Abfragen der Namen der einen oder der mehreren Abspiellisten
ab, die Auflistungen benutzerdefinierter Gruppen von Liedern sind.
Beispielsweise veranlasst das folgende Pseudocode-Stück "Hole Abspielliste", dass eine oder mehrere
durch den Benutzer benannte Abspiellisten, beispielsweise eine Abspielliste
namens "Disco Inferno", abgerufen wird.
Im Gegensatz dazu ruft eine "Hole
Abspielliste Lied"-Funktion 1032 eines
oder mehrere Lieder der einen oder der mehreren Abspiellisten ab.
Beispielsweise betrachte man, dass das folgende Pseudocode-Stück "Hole Abspielliste
Lied (Disco Inferno)" derart
ausgestaltet ist, dass es alle Lieder in der Abspielliste namens
Disco Inferno abruft. Eine "Hole
Lied Info"-Funktion 1034 ist
serverabhängigen
Anweisungen zugeordnet, die, wenn sie ausgeführt werden, Daten abfragen,
die musikbezogene Informationen, beispielsweise Titel, Künstler,
Komponisten, Gattung, Länge,
Spur, Album oder derartige Informationen, repräsentieren.
-
Die
Funktionen "Durchsuche" 1036 und "Suche" 1038 sind
insbesondere ausführbaren
Anweisungen zum Ausführen
eines Durchsuchens beziehungsweise einer Suche eines Musikservers
zugeordnet. Die Durchsuchfunktion 1036 verwendet typischerweise
ein Argument, beispielsweise ALBEN, KÜNSTLER, KOMPONISTEN, GATTUNGEN,
oder dergleichen. Beispielsweise wird eine Universalmusikvorrichtung,
die das folgende Pseudocode-Stück "Durchsuche (Komponisten)" ausführt, eine
Auflistung von Komponisten zurückgeben,
die ein Benutzer für
eine weitere Auswahl durchsuchen kann. In ähnlicher Weise verwendet die
Suchfunktion 1038 typischerweise ein Argument, beispielsweise
ALBEN, KÜNSTLER,
TITEL, SCHLAGWÖRTER
oder dergleichen, von denen jedes als Zeichenkette eingegeben wird,
die in einem Musikserver gesucht wird. Man beachte, dass die Fähigkeiten 1004 und
die zugeordneten Eigenschaften 1006 bis 1014 sowie
die verallgemeinerten Funktionen 1020 und die zugeordneten
Funktionen 1022 bis 1038 lediglich für die verallgemeinerten Funktionen
repräsentativ
sind, die eine Universalmusikvorrichtung durchführen kann. Aber in manchen
Fällen können mehr
oder weniger Funktionen implementiert werden, wenn in einem Musikserver
in Übereinstimmung mit
verschiedenen Ausführungsformen
der Erfindung ein Modellieren durchgeführt wird. Beispielsweise können die
verallgemeinerten Funktionen 1020 Zuordnungen zu Sätzen von
Anweisungen zum Aufbauen einer Liedreihe zum Ausführen eines
Streaming digitalisierter Musik von mehreren Musikservern, zum Durchsehen einer
Liedreihe, zum Löschen
einer Liedreihe, zum Pausieren einer Musikwiedergabe, und zum Ausführen anderer ähnlicher
Aktionen aufweisen.
-
11 führt eine
Architektur gemäß mindestens
einer Ausführungsform
der Erfindung ein, bei der Musikserverobjekte ("MSOs")
in einem Rechengerät
implementiert sind, um den Zugriff auf eine Anzahl von spezialisierten
Musikservern zu vereinheitlichen. Bei diesem Beispiel ist die Universalmusikvorrichtung 1100 ein Rechengerät, das aus
Hardwaremodulen, Softwaremodulen oder einer Kombination davon besteht.
Die Universalmusikvorrichtung 1100 weist einen Programmspeicher 1102 auf,
der mit einem Bus 1146 verbunden ist. Der Programmspeicher 1102 speichert
Sätze von
ausführbaren
Programmen zum Implementieren der Funktionen für die verschiedenen Ausführungsformen
der Erfindung. Bei einer Ausführungsform
der Erfindung bilden Teilsätze
der ausführbaren
Programmanweisungen, die in dem Programmspeicher 1102 gespeichert
sind, eine Programmmaschine 1150 und ein Universalermittlungsmodul 1160.
Die Programmmaschine 1150 und das Universalermittlungsmodul 1160 haben ähnliche
Strukturen und/oder Funktionen wie oben beschrieben. Wie dargestellt,
zeigt 11 ein beispielhaftes MSO 1000 wie
in 10, das in der Programmmaschine 1100,
beispielsweise in einer Objektschicht (nicht gezeigt), angeordnet
ist. Die Universalmusikvorrichtung 1100 weist auch eine
Anzahl von Standardkomponenten, einschließlich einer CPU 1140,
Eingabe/Ausgabe-("I/O")-Geräten 1142,
wie beispielsweise einer Benutzerschnittstelle (z. B. einer grafischen
Anzeige zum Kommunizieren musikbezogener Informationen und/oder
Lautsprechern zum Erzeugen von Musik) und/oder einer entfernten Tastatur,
und einer Netzschnittstelle ("IF") 1144,
die alle derart konfiguriert sind, dass sie über einen Bus 1146 kommunizieren.
Die Netz-IF 1144 erleichtert die Weiterleitung über jede
Art eines lokalen Netzes 1170 an ein weiteres Rechengerät, beispielsweise
an eines, das einen der Musikserver 1172 bildet. Beispielsweise
kann die Netz-IF 1144 die Ethernet-Kommunikation (beispielsweise
schnelles Ethernet, wie z. B. Ethernet 10/100/1000 MB) sowie die
drahtlose Kommunikation (z. B. IEEE-802.11b- und 802.11g-Stadard
usw.) erleichtern. Die Netz-IF 1144 erleichtert auch die
Kommunikation mit einem vernetzten "Radio"-Server 1190, wie beispielsweise
einen internetbasierten Server, der derart konfiguriert ist, dass
er Daten liefert (d. h. mit der Streaming-Technik ausgibt), die
Musik aufweisende Audio-Dateien repräsentieren. Ein vernetztes Radio
(zum Beispiel ein Internetradio) basiert auf dem Konzept strömender Audioinformationen.
Ein Radioserver 1190 sendet über das Netz einen Strom von
Audiosignalen vollständig
oder teilweise in Form von Musikdateien (zum Beispiel MP3 oder ein
anderes ähnliches
digitales Audioformat) aus. Benutzer, die einen speziellen Audiostrom anhören wollen,
können
den Universalmusikserver 1100 anweisen, dass er sich mit
der URL der Radiostation verbindet, die sie hören wollen. Der Universalmusikserver 1100 richtet
dann den Strom der Audioinformationen an einen Dekodierer oder an
einen Codec (beide nicht gezeigt), um beispielsweise den eingehenden
Strom der Audiosignale abzuspielen.
-
Es
versteht sich, dass die ausführbaren
Module, die in dem Programmspeicher 1102 gezeigt sind,
beispielhaft sind. Die Funktionen der Erfindung können in
jeder beliebigen Anzahl von Arten implementiert sein. Es versteht
sich ferner, dass die Funktionen der Erfindung nicht in einer einzelnen
Universalmusikvorrichtung 1100 implementiert werden müssen. Die
Funktionen der verschiedenen Ausführungsformen der Erfindung können in
einem Satz von Servern, Clients, Clients und Servern, usw. implementiert
werden. Die Funktionen der verschiedenen Ausführungsformen sind wesentlich,
und nicht, wo oder wie diese Funktionen implementiert sind.
-
12A und 12B veranschaulichen
Beispiele von Benutzerschnittstellen gemäß einer Ausführungsform,
die durch das UI-Modul 516 (5) implementiert
sind. 12A zeigt, dass das UI-Modul 514 gemäß einer
Ausführungsform
die Erzeugung einer eingebauten UI unterstützt, die das Universalmedienvorrichtungsmodul 502 erzeugt.
Hier kann das Universalmedienvorrichtungsmodul 502 eine
zeichenkettenbasierte Benutzerschnittstelle bilden, die einen vollständigen Satz
von Funktionen, einschließlich
Internetradio, Durchsuchen, Suchen und Wiedergabe einer vernetzten
Musikbibliothek, WiFi-Aufbau und Konfiguration usw., unterstützt. Das
UI-Modul 516 unterstützt
Anzeigen, die hinsichtlich der Höhe
von einer bis 24 Zeilen reichen, und konfiguriert automatisch seine
UI bezüglich
des Zielgeräts,
je nachdem, ob es beispielsweise ein Einzelzeilen-VFD oder ein Zweizeilen-LCD
aufweist oder es ein Fernsehgerät
mit 24 Zeilen Anzeigeplatz ist. In dieser Betriebsart erzeugt das
Universalmedienvorrichtungsmodul 502 Textketten zum Anzeigen
und sendet diese an den Prozessor 510, und der Prozessor 510 zeigt
dann die Zeichenketten dem Benutzer an und sendet Benutzerantworten
zurück
an das Universalmedienvorrichtungsmodul 502. 12B zeigt das UI-Modul 514 gemäß einer
Ausführungsform,
das die Erzeugung einer benutzerdefinierten UI unterstützt und
dem das Universalmedienvorrichtungsmodul 502 grundlegende
Daten zum Anzeigen bereitstellt. Das AN-Gerät 500 kann hier jede
beliebige Benutzerschnittstelle implementieren, die ein Entwickler
wünscht.
Um die Benutzerschnittstelle mit dem Universalmedienvorrichtungsmodul 502 zu
verbinden, gibt es einen reichhaltigen Satz von Steuerbefehlen des
UMI-Steuerprotokolls,
der beispielsweise ein Durchsuchen aller vernetzter Musikbibliotheken
und Internetradiostationen und ein Suchen darin erleichtert. Da
das Universal medienvorrichtungsmodul 502 die komplizierten
Aspekte des Ansprechens verschiedener Servertypen, Netztreiber,
Protokollstapel, der digitalen Rechteverwaltung usw. abstrahiert,
kann sich ein Entwickler auf das Ausbilden einer eigenen UI mit
leistungsstarken Funktionen für
die digitale Musik konzentrieren.
-
13 zeigt
die Implementierung einer Abspielliste gemäß einer Ausführungsform
der Erfindung, die sich auf Lieder bezieht, die in mehreren spezialisierten
Servern gespeichert sind. Die Darstellung 1300 zeigt ein
Zielgerät 1302,
das ein proprietäres
Anwendungsprogramm 1304 (z. B. Software, Firmware oder
eine andere Art ausführbaren
Codes) implementiert, um die Funktionalitäten des Zielgeräts 1302 bereitzustellen.
Das Zielgerät 1302 weist
ferner eine API 1306 zum Erzeugen verallgemeinerter musikbezogener
Befehle auf. In Antwort auf eine Anfrage von einem prorietären Anwendungsprogramm 1304 erzeugt
und übermittelt
die API 1306 einen verallgemeinerten Befehl ("GC") 1310,
wie beispielsweise einen "ListeAbspiellisteLiederAuf'-Befehl, um eine
Abspielliste 1350 zu bilden und/oder auf dieser zu arbeiten.
In einer Ausführungsform
empfängt der
UMA 1320 den GC 1310 und, in Antwort darauf, greift
er auf spezialisierte Musikserver 1332 in dem Netz 1330 zu,
um die Abspielliste 1350 unabhängig von den grundlegenden
Serverprotokollen zu erzeugen. Beispielsweise kann der UMA 1320 eine
Abspielliste 1340 bilden und diese als Daten speichern,
die Lieder 1342 in einem Programmspeicher 1322 repräsentieren.
Der GC 1310 kann als einzelner Befehl vorteilhafterweise eine
einzige Liste von Liedern erzeugen und/oder es ermöglichen,
dass ein Benutzer mit dieser interagiert, selbst wenn ein Lied ("1") 1342a und ein Lied ("3") 1342b auf entsprechenden
Servern 1332a und 1332b gespeichert sind, wobei
beide Server auf verschiedene Kommunikationsprotokolle ansprechen.
Bei diesem Beispiel arbeiten der Server 1332a und der Server 1332b gemäß UPnP bzw.
DAAP.
-
Die
vorhergehende Beschreibung verwendete zu Erklärungszwecken eine spezielle
Nomenklatur, um ein grundlegendes Verständnis der Erfindung zu schaffen.
Jedoch ist es für
einen Fachmann ersichtlich, dass spezielle Details nicht erforderlich
sind, um die Erfindung auszuüben.
In der Tat ist die Beschreibung nicht so zu lesen, dass sie ein
Merkmal oder einen Aspekt der Erfindung auf eine Ausführungsform
be schränkt;
vielmehr können
Merkmale oder Aspekte einer Ausführungsform
leicht mit denen anderer Ausführungsformen ausgetauscht
werden. Obwohl die obigen Beschreibungen der verschiedenen Ausführungsformen
sich auf Musik und Musikserver beziehen, ist es beabsichtigt, dass
diese auf Medien-/Multimedienserver Anwendung finden, die eine Streaming-Übertragung
von Videoinformationen und Nichtbewegtbildern zusammen mit Audioinformationen
ausführen
und/oder jene bereitstellen können.
-
Daher
sind die vorangehenden Beschreibungen der speziellen Ausführungsformen
der Erfindung zu Erklärungs-
und Beschreibungszwecken dargelegt. Es ist nicht beabsichtigt, dass
diese erschöpfend
sind oder die Erfindung auf die präzisen offenbarten Ausgestaltungen
einschränken;
viele Modifikationen oder Variationen sind angesichts der obigen
Lehre offensichtlich möglich.
Die Ausführungsformen
wurden ausgewählt
und beschrieben, um die Prinzipien der Erfindung und deren praktische
Anwendungen am besten zu erklären;
sie ermöglichen
es daher, dass andere Fachleute die Erfindung und verschiedene Ausführungsformen
mit verschiedenen Modifikationen, wie sie zur jeweiligen betrachteten
Verwendung geeignet sind, am besten verwenden. Nicht jeder hier
beschriebene Vorteil braucht insbesondere durch jede Ausführungsform
der Erfindung realisiert zu sein; vielmehr kann jede Ausführungsform
einen oder mehrere der oben diskutierten Vorteile schaffen. Es ist
beabsichtigt, dass die folgenden Ansprüche und ihre Äquivalente
den Umfang der Erfindung definieren.
-
ZUSAMMENFASSUNG
-
Unterschiedliche
Ausführungsformen
der Erfindung stellen ein Verfahren, eine Vorrichtung, ein System
und ein computerlesbares Medium zum Implementieren einer Universalmedienschnittstelle
und eines Steuerprotokolls zum Steuern einer Universalmedienvorrichtung
bereit. Die Universalmedienschnittstelle und ihr Steuerprotokoll
erleichtern die Kommunikation, einschließlich des Ausgebens verallgemeinerter
Befehle zwischen einem Zielgerät,
wie beispielsweise einem Audio/Video-("AN")-Gerät, und einem
Universalmusikspieler, wodurch das Zielgerät in die Lage versetzt wird,
Musik von unterschiedlichen Arten von Musikservern und spezialisierten
Serverprozessen zu spielen.