DE112006001745T5 - Verfahren, Vorrichtung, System und computerlesbares Medium zum Bereitstellen einer Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung - Google Patents

Verfahren, Vorrichtung, System und computerlesbares Medium zum Bereitstellen einer Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung Download PDF

Info

Publication number
DE112006001745T5
DE112006001745T5 DE112006001745T DE112006001745T DE112006001745T5 DE 112006001745 T5 DE112006001745 T5 DE 112006001745T5 DE 112006001745 T DE112006001745 T DE 112006001745T DE 112006001745 T DE112006001745 T DE 112006001745T DE 112006001745 T5 DE112006001745 T5 DE 112006001745T5
Authority
DE
Germany
Prior art keywords
music
command
universal
server
servers
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.)
Withdrawn
Application number
DE112006001745T
Other languages
English (en)
Inventor
Anthony John Palo Alto Wood
Michael Joseph Belmont Kobb
Gregory Mack Springdale Garner
Daniel Redwood City Sletten
Donald Robert Jr. Monte Sereno Woodward
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.)
Roku Inc
Original Assignee
Roku 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
Priority claimed from US11/327,180 external-priority patent/US20060253547A1/en
Application filed by Roku Inc filed Critical Roku Inc
Publication of DE112006001745T5 publication Critical patent/DE112006001745T5/de
Withdrawn legal-status Critical Current

Links

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/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • G06F16/639Presentation of query results using playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/64Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/281Exchanging configuration information on appliance services in a home automation network indicating a format for calling an appliance service function in a home automation network
    • 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/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • H04N21/8113Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L2012/2847Home automation networks characterised by the type of home appliance used
    • H04L2012/2849Audio/video appliances

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Communication Control (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Vorrichtung zum Bereitstellen von musikbezogenen Anfragen von einem elektronischen Zielgerät an einen oder mehrere spezialisierte Musikserver, die mit verschiedenen Serverprotokollen arbeiten, wobei die Vorrichtung aufweist:
einen Anfragedekodierer, der derart konfiguriert ist, dass er eine musikbezogene Anfrage dekodiert, um unter Verwendung eines einer Mehrzahl von verschiedenen Serverprotokollen mit zumindest einem spezialisierten Musikserver zu kommunizieren;
ein Befehlssteuerprotokollmodul, das derart konfiguriert ist, dass es in Antwort auf die musikbezogene Anfrage einen verallgemeinerten musikbezogenen Befehl erzeugt;
ein Universalmusikvorrichtungsmodul, das derart konfiguriert ist, dass es in Antwort auf den verallgemeinerten musikbezogenen Befehl auf mehrere spezialisierte Musikserver zugreift; und
eine Universalmediendatenverbindung, die derart konfiguriert ist, dass sie den verallgemeinerten musikbezogenen Befehl von dem Befehlssteuerprotokollmodul an das Universalmusikvorrichtungsmodul übergibt,
wobei die mehreren spezialisierten Musikserver inkompatible Serverprotokolle implementieren.

Description

  • 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
    • 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.

Claims (23)

  1. Vorrichtung zum Bereitstellen von musikbezogenen Anfragen von einem elektronischen Zielgerät an einen oder mehrere spezialisierte Musikserver, die mit verschiedenen Serverprotokollen arbeiten, wobei die Vorrichtung aufweist: einen Anfragedekodierer, der derart konfiguriert ist, dass er eine musikbezogene Anfrage dekodiert, um unter Verwendung eines einer Mehrzahl von verschiedenen Serverprotokollen mit zumindest einem spezialisierten Musikserver zu kommunizieren; ein Befehlssteuerprotokollmodul, das derart konfiguriert ist, dass es in Antwort auf die musikbezogene Anfrage einen verallgemeinerten musikbezogenen Befehl erzeugt; ein Universalmusikvorrichtungsmodul, das derart konfiguriert ist, dass es in Antwort auf den verallgemeinerten musikbezogenen Befehl auf mehrere spezialisierte Musikserver zugreift; und eine Universalmediendatenverbindung, die derart konfiguriert ist, dass sie den verallgemeinerten musikbezogenen Befehl von dem Befehlssteuerprotokollmodul an das Universalmusikvorrichtungsmodul übergibt, wobei die mehreren spezialisierten Musikserver inkompatible Serverprotokolle implementieren.
  2. Vorrichtung nach Anspruch 1, wobei das Befehlssteuerprotokollmodul ferner derart konfiguriert ist, dass es einen musikbezogenen Befehl zum Bilden einer Abspielliste von Liedern zum Abspielen erzeugt, wobei die Abspielliste Lieder aufweist, die aus Musikdaten bestehen, die auf den mehreren spezialisierten Musikservern gespeichert sind.
  3. Vorrichtung nach Anspruch 1, wobei das Befehlssteuerprotokollmodul ferner derart konfiguriert ist, dass es einen synchronen musikbezogenen Befehl erzeugt, der eine Antwort von dem Universalmusikvorrichtungsmodul erfordert, bevor das Befehlssteuerprotokollmodul einen nachfolgenden musikbezogenen Befehl übermittelt.
  4. Vorrichtung nach Anspruch 3, wobei der synchrone musikbezogene Befehl ein einziger Befehl ist, der das Universalmusikvorrichtungsmodul veranlasst, die mehreren spezialisierten Musikserver unter Verwendung verschiedener Ermittlungsprotokolle zu identifizieren.
  5. Vorrichtung nach Anspruch 1, wobei das Befehlssteuerprotokollmodul ferner derart konfiguriert ist, dass es einen asynchronen musikbezogenen Befehl erzeugt, der eine oder mehrere Antworten bildet, wenn das Universalmusikvorrichtungsmodul einen oder mehrere nachfolgende musikbezogene Befehle ausführt.
  6. Vorrichtung nach Anspruch 5, wobei der asynchrone musikbezogene Befehl ein einziger Befehl ist, der das Universalmusikvorrichtungsmodul veranlasst, musikbezogene Informationen unter Verwendung verschiedener Kommunikationsprotokolle von den mehreren spezialisierten Musikservern abzufragen.
  7. Vorrichtung nach Anspruch 6, wobei die musikbezogene Informationen Informationen über Künstler, Titel, Komponisten, Gattungen, Alben und Abspiellisten aufweisen.
  8. Vorrichtung nach Anspruch 1, wobei die Vorrichtung auf einem Substrat ausgebildet ist, das entweder eine gedruckte Leiterplatte ("PCB") oder einen Halbleiterwafer aufweist.
  9. Computerlesbares Medium, mit ausführbaren Anweisungen, um musikbezogene Anfragen von einem elektronischen Zielgerät an mehrere spezialisierte Musikserver bereitzustellen, die über ein Netz mit verschiedenen Serverprotokollen arbeiten, wobei das computerlesbare Medium ausführbare Anweisungen aufweist, um: eine Anfrage zum Zugreifen auf Musik zu erfassen, die den mehreren spezialisierten Musikservern zugeordnet ist; und die Anfrage entweder als synchroner Befehl oder als asynchroner Befehl zu dekodieren, wobei jeder Befehl derart konfiguriert ist, dass er auf einen der mehreren spezialisierten Musikserver zugreift, wobei der synchrone Befehl und der asynchrone Befehl verallgemeinerte Befehle sind.
  10. Computerlesbares Medium nach Anspruch 9, das ferner ausführbare Anweisungen aufweist, um entweder den synchronen Befehl oder den asynchronen Befehl an ein Universalmusikvorrichtungsmodul zu übermitteln, das serverspezifische Befehle erzeugt, die den verallgemeinerten Befehlen zugeordnet sind.
  11. Computerlesbares Medium nach Anspruch 9, wobei der synchrone Befehl ein einzelner ListeServerAuf-Befehl zum Erzeugen einer Liste eines oder mehrerer der mehreren spezialisierten Musikserver unter Verwendung mehrerer Ermittlungsprotokolle ist.
  12. Computerlesbares Medium nach Anspruch 9, wobei der synchrone Befehl ein einzelner SetzeServerFilter-Befehl zum Auswählen eines oder mehrerer Teilsätze der mehreren spezialisierten Musikserver ist, wobei zumindest ein Teilsatz der Teilsätze Musikserver aufweist, die ein gemeinsames Kommunikationsprotokoll verwenden.
  13. Computerlesbares Medium nach Anspruch 12, wobei andere Teilsätze eines oder mehrere der folgenden Elemente aufweisen: ein tragbares Mediengerät, einschließlich eines Flash-Speicher-basierten Geräts, eine Liste von Internetradiostationen und einen Radioempfänger.
  14. Computerlesbares Medium nach Anspruch 9, wobei der asynchrone Befehl ein einziger Befehl ist, um eine Liste zu erzeugen, die sich auf eine der folgenden musikbezogenen Informationen von den mehreren spezialisierten Musikservern bezieht: Lieder, Alben, Künstler, Komponisten, Gattungen, Abspiellisten und Abspiellistenlieder.
  15. Computerlesbares Medium nach Anspruch 14, wobei der asynchrone Befehl eine Kette von alphanumerischen Zeichen als Argument zum Suchen in den mehreren spezialisierten Musikservern aufweist, um musikbezogene Informationen für ein bestimmtes Lied, ein bestimmtes Album, einen bestimmten Künstler, einen bestimmten Komponisten, eine bestimmte Gattung, eine bestimmte Abspielliste oder bestimmte Abspiellistenlieder abzufragen.
  16. Computerlesbares Medium nach Anspruch 9, das ferner ausführbare Anweisungen aufweist, um: die Anfrage als Transportbefehl zu dekodieren, der einen der folgenden verallgemeinerten Befehle aufweist: Abspielen, Pause, Nächstes, Voriges, Halt, Mischen und Wiederholen, wobei der Transportbefehl ein verallgemeinerter Befehl ist, den ein Universalmusikvorrichtungsmodul ausführt, um einen entsprechenden serverspezifischen Befehl zu erzeugen.
  17. Vorrichtung zum Bereitstellen von Anfragen von einem elektronischen Zielgerät als verallgemeinerte Befehle zum Interagieren mit einem oder mehreren spezialisierten Medienservern, die mit verschiedenen Serverprotokollen arbeiten, wobei die Vorrichtung aufweist: eine Universalmedienschnittstelle, die aufweist: einen Anfragedekodierer, der derart konfiguriert ist, dass er eine Anfrage dekodiert, um mit einem spezialisierten Medienserver aus einem proprietären Anwendungsprogramm eines Zielgeräts zu kommunizieren, um eine dekodierte Anfrage zu bilden; und ein Befehlssteuerprotokollmodul, das derart konfiguriert ist, dass es einen verallgemeinerten Befehl zum Aufrufen einer Antwort von einem des einen oder der mehreren spezialisierten Medienserver erzeugt, der von den verschiedenen Serverprotokollen unabhängig ist, wobei der verallgemeinerte Befehl auf der dekodierten Anfrage basiert.
  18. Vorrichtung nach Anspruch 17, wobei die Universalmedienschnittstelle ferner derart konfiguriert ist, dass sie den verallgemeinerten Befehl über eine Universalmediendatenverbindung an eine Universalmusikvorrichtung übermittelt, wobei die Universalmusikvorrichtung in Antwort auf den verallgemeinerten Befehl einen serverspezifischen Befehl für den spezialisierten Medienserver erzeugt.
  19. Vorrichtung nach Anspruch 17, wobei das Befehlssteuerprotokollmodul ferner derart konfiguriert ist, dass es einen verallgemeinerten Befehl erzeugt, der verschiedene Ermittlungsprotokolle initiiert, um mehrere spezialisierte Medienserver zu identifizieren.
  20. Vorrichtung nach Anspruch 19, wobei das Befehlssteuerprotokollmodul ferner derart konfiguriert ist, das es einen weiteren verallgemeinerten Befehl erzeugt, der verschiedene Kommunikationsprotokolle initiiert, um mit den mehreren spezialisierten Medienservern wechselzuwirken.
  21. Vorrichtung nach Anspruch 20, wobei die verschiedenen Ermittlungsprotokolle ein BonjourTM-Protokoll und ein Simple-Service-Ermittlungsprotokoll ("SSDP") aufweisen, und wobei die verschiedenen Kommunikationsprotokolle ein Universal-Plug-and-PlayTM-("UPnP")-Protokoll und ein Digital-Audio-Access-Protokoll ("DAAP") aufweisen.
  22. Vorrichtung nach Anspruch 17, die ferner ein Anwendungsprogrammierungs-("API")-Schnittstellenmodul für einen Universalmedienspieler zum Implementieren zumindest des Anfragedekodierers aufweist, um Anweisungen des proprietären Anwendungsprogramms zu dekodieren.
  23. Vorrichtung nach Anspruch 17, wobei das Zielgerät ein elektronisches Verbrauchergerät ist, einschließlich eines AN-Empfängers, eines Fernsehers, eines persönlichen Digitalassistenten ("PDA"), eines Radios, eines tragbaren Medienspielers, einschließlich eines Digital-Video-Disc-("DVD")-Spielers, und eines drahtlosen Telefons.
DE112006001745T 2005-06-29 2006-06-29 Verfahren, Vorrichtung, System und computerlesbares Medium zum Bereitstellen einer Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung Withdrawn DE112006001745T5 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US69557805P 2005-06-29 2005-06-29
US60/695,578 2005-06-29
US11/327,180 US20060253547A1 (en) 2005-01-07 2006-01-06 Universal music apparatus for unifying access to multiple specialized music servers
US11/327,180 2006-01-06
US11/479,156 2006-06-29
PCT/US2006/025988 WO2007030191A2 (en) 2005-06-29 2006-06-29 Provinding a universal media interface to control a universal media apparatus
US11/479,156 US20090125609A1 (en) 2005-01-07 2006-06-29 Method, apparatus, system and computer readable medium for providing a universal media interface to control a universal media apparatus

Publications (1)

Publication Number Publication Date
DE112006001745T5 true DE112006001745T5 (de) 2008-07-31

Family

ID=37836310

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001745T Withdrawn DE112006001745T5 (de) 2005-06-29 2006-06-29 Verfahren, Vorrichtung, System und computerlesbares Medium zum Bereitstellen einer Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung

Country Status (4)

Country Link
US (1) US20090125609A1 (de)
DE (1) DE112006001745T5 (de)
GB (1) GB2443350B (de)
WO (1) WO2007030191A2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2320724T3 (es) 1999-10-22 2009-05-28 Nomadix, Inc. Sistemas y procedimientos para la gestion dinamica del ancho de banda por abonado en una red de comunicaciones.
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US20020062398A1 (en) 2000-11-20 2002-05-23 William Ho Chang Controller for mobile and pervasive output
US20060235864A1 (en) * 2005-04-14 2006-10-19 Apple Computer, Inc. Audio sampling and acquisition system
US20190278560A1 (en) 2004-10-27 2019-09-12 Chestnut Hill Sound, Inc. Media appliance with auxiliary source module docking and fail-safe alarm modes
US8090309B2 (en) 2004-10-27 2012-01-03 Chestnut Hill Sound, Inc. Entertainment system with unified content selection
US7885622B2 (en) 2004-10-27 2011-02-08 Chestnut Hill Sound Inc. Entertainment system with bandless tuning
US8938217B2 (en) * 2005-08-22 2015-01-20 Apple Inc. Communicating and storing information associated with media broadcasts
CN101536462B (zh) 2006-09-29 2013-12-04 诺玛迪克斯公司 内容注入系统和方法
US8265617B2 (en) * 2007-04-10 2012-09-11 Research In Motion Limited Media transfer and control system
US7881744B2 (en) 2007-04-10 2011-02-01 Research In Motion Limited Media transfer and control system
US8639714B2 (en) 2007-08-29 2014-01-28 Yahoo! Inc. Integrating sponsored media with user-generated content
US20090062944A1 (en) * 2007-09-04 2009-03-05 Apple Inc. Modifying media files
US8819553B2 (en) * 2007-09-04 2014-08-26 Apple Inc. Generating a playlist using metadata tags
US20090119332A1 (en) * 2007-11-01 2009-05-07 Lection David B Method And System For Providing A Media Transition Having A Temporal Link To Presentable Media Available From A Remote Content Provider
US9130686B2 (en) * 2007-12-20 2015-09-08 Apple Inc. Tagging of broadcast content using a portable media device controlled by an accessory
KR20100132979A (ko) * 2008-03-14 2010-12-20 텔레폰악티에볼라겟엘엠에릭슨(펍) Upnp 네트워크에서 최종 사용자 통지를 제공하기 위한 방법 및 장치
US20090313564A1 (en) * 2008-06-12 2009-12-17 Apple Inc. Systems and methods for adjusting playback of media files based on previous usage
US8527876B2 (en) * 2008-06-12 2013-09-03 Apple Inc. System and methods for adjusting graphical representations of media files based on previous usage
US8452228B2 (en) 2008-09-24 2013-05-28 Apple Inc. Systems, methods, and devices for associating a contact identifier with a broadcast source
US20100076576A1 (en) * 2008-09-24 2010-03-25 Apple Inc. Systems, methods, and devices for providing broadcast media from a selected source
US20100075695A1 (en) * 2008-09-24 2010-03-25 Apple Inc. Systems, methods, and devices for retrieving local broadcast source presets
US8886112B2 (en) 2008-09-24 2014-11-11 Apple Inc. Media device with enhanced data retrieval feature
US8645599B2 (en) * 2009-01-07 2014-02-04 Renesas Electronics America, Inc. Consumer media player
US8638804B2 (en) * 2010-06-04 2014-01-28 Broadcom Corporation Method and system for recognizing energy efficient certified devices through a gateway
EP2394224A1 (de) 2009-02-05 2011-12-14 Digimarc Corporation Werbung auf fernsehbasis und ausgabe von fernsehapplikationen für mobiltelefone
US8918333B2 (en) * 2009-02-23 2014-12-23 Joseph Harb Method, system and apparatus for interactive radio advertising
US11647243B2 (en) 2009-06-26 2023-05-09 Seagate Technology Llc System and method for using an application on a mobile device to transfer internet media content
US20120210205A1 (en) 2011-02-11 2012-08-16 Greg Sherwood System and method for using an application on a mobile device to transfer internet media content
US20110030037A1 (en) 2009-07-07 2011-02-03 Vadim Olshansky Zone migration in network access
US8898170B2 (en) 2009-07-15 2014-11-25 Apple Inc. Performance metadata for media
US20110060998A1 (en) * 2009-09-04 2011-03-10 Rick Schwartz System and method for managing internet media content
US8214740B2 (en) * 2009-10-30 2012-07-03 Apple Inc. Song flow methodology in random playback
US9323788B2 (en) 2009-11-23 2016-04-26 iHeartMedia Management Service, Inc. Managing under-filled spot blocks
US20110131520A1 (en) * 2009-12-02 2011-06-02 Osama Al-Shaykh System and method for transferring media content from a mobile device to a home network
US8140570B2 (en) * 2010-03-11 2012-03-20 Apple Inc. Automatic discovery of metadata
US8798777B2 (en) 2011-03-08 2014-08-05 Packetvideo Corporation System and method for using a list of audio media to create a list of audiovisual media
US20140122601A1 (en) * 2012-10-26 2014-05-01 Milyoni, Inc. Api translator for providing a uniform interface for users using a variety of media players
US20140195587A1 (en) * 2013-01-04 2014-07-10 SookBox LLC Method and system for providing digital content
US9986044B2 (en) * 2013-10-21 2018-05-29 Huawei Technologies Co., Ltd. Multi-screen interaction method, devices, and system
US10068012B2 (en) 2014-06-27 2018-09-04 Sonos, Inc. Music discovery
US9766789B1 (en) * 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
US20180014075A1 (en) * 2014-12-24 2018-01-11 Magic Media Works Limited Media playback device and system
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems
WO2019161200A1 (en) 2018-02-15 2019-08-22 DMAI, Inc. System and method for conversational agent via adaptive caching of dialogue tree
US10789038B2 (en) 2018-07-20 2020-09-29 Logitech Europe S.A. Content streaming apparatus and method
US11418559B2 (en) 2020-09-21 2022-08-16 Logitech Europe S.A. Content distribution system
US11445457B2 (en) 2020-09-21 2022-09-13 Logitech Europe S.A. Content distribution system
CN114415829B (zh) * 2021-12-29 2022-08-19 广州市影擎电子科技有限公司 一种跨平台的设备通用接口实现方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293099B1 (en) * 1998-09-29 2007-11-06 Sun Microsystems, Inc. Heterogeneous network file access
US6460082B1 (en) * 1999-06-17 2002-10-01 International Business Machines Corporation Management of service-oriented resources across heterogeneous media servers using homogenous service units and service signatures to configure the media servers
US20010042107A1 (en) * 2000-01-06 2001-11-15 Palm Stephen R. Networked audio player transport protocol and architecture
JP2001331658A (ja) * 2000-05-18 2001-11-30 Yamaha Corp コンテンツの配給システム及び同配給方法、同配給システムに利用されるサーバ及びクライアント、並びにこれらに適用されるプログラムを記録したコンピュータ読取り可能な記録媒体
CA2328033A1 (en) * 2000-12-12 2002-06-12 Ibm Canada Limited-Ibm Canada Limitee Method and system for a computer system to support various communication devices
US20040225519A1 (en) * 2002-06-25 2004-11-11 Martin Keith D. Intelligent music track selection
US20040091111A1 (en) * 2002-07-16 2004-05-13 Levy Kenneth L. Digital watermarking and fingerprinting applications
US20060206582A1 (en) * 2003-11-17 2006-09-14 David Finn Portable music device with song tag capture
US20050220106A1 (en) * 2004-03-31 2005-10-06 Pierre Guillaume Raverdy Inter-wireless interactions using user discovery for ad-hoc environments
US20050267972A1 (en) * 2004-05-25 2005-12-01 Nokia Corporation Lightweight remote display protocol
US20060168126A1 (en) * 2004-12-21 2006-07-27 Jose Costa-Requena Aggregated content listing for ad-hoc peer to peer networks

Also Published As

Publication number Publication date
GB2443350A (en) 2008-04-30
WO2007030191A2 (en) 2007-03-15
WO2007030191A3 (en) 2007-09-20
GB2443350B (en) 2009-11-04
GB0800218D0 (en) 2008-02-13
US20090125609A1 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
DE112006001745T5 (de) Verfahren, Vorrichtung, System und computerlesbares Medium zum Bereitstellen einer Universalmedienschnittstelle zum Steuern einer Universalmedienvorrichtung
US8959181B2 (en) System and method for creating and posting media lists for purposes of subsequent playback
US7664830B2 (en) Method and system for utilizing embedded MPEG-7 content descriptions
US8707185B2 (en) Dynamic information management system and method for content delivery and sharing in content-, metadata- and viewer-based, live social networking among users concurrently engaged in the same and/or similar content
CN102982058B (zh) 用于支持播客的技术和系统
DE60116385T2 (de) System zum zurverfügungstellen von inhalten, verwaltung und interaktivität für kundenvorrichtungen mit beschränkter funktionalität
DE60317917T2 (de) Verfahren und vorrichtung zum weiterleiten von sitzungsinformationen von einem portal-server
US7640252B2 (en) Systems and methods for generating prediction queries
US20030115598A1 (en) System and method for interactively producing a web-based multimedia presentation
DE602005002906T2 (de) Methode und Vorrichtung zur Beschreibung von Haushaltselektronik unter Verwendung von separaten Aufgaben- und Gerätebeschreibungen
DE10348337A1 (de) Inhaltsverwaltungsportal und Verfahren zum Kommunizieren von Informationen
CN104321743A (zh) 用于开发在通信网络上查询内容和服务的应用程序的方法和系统
JP2007036830A (ja) 動画管理システム、動画管理方法、クライアント、およびプログラム
NZ561778A (en) Aggregation and synchronization of nearby media
JP4882875B2 (ja) 情報処理システム、収集サーバ、情報処理方法及びプログラム
CN103778168A (zh) 一种全网页评论、评论查询方法、装置及其系统
WO2007115082A2 (en) Systems and methods of transforming data for web communities and web applications
CN105637472A (zh) 具有广义屏幕描述的屏幕内容共享系统的框架
US20040128691A1 (en) Video browsing system, distribution server and browse client
CN113158619B (zh) 文档处理方法、装置、计算机可读存储介质及计算机设备
KR20010104871A (ko) 검색결과의 자동분류 기능을 갖는 인터넷 사이트 검색서비스 시스템
JP2002082894A (ja) コミュニティ環境提供システムおよびオブジェクト表現制御装置
DE102005048205B4 (de) Verfahren und System zur elektronischen Recherche zu Inhalten innerhalb einer Präsentation
Attardi et al. The LOA customizable media aggregator
KR102176936B1 (ko) 사용자 템플릿 데이터 기반의 디지털 사이니지 콘텐츠 제작 및 관리 시스템

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: ROKU, INC. ( N. D. GES. D. STAATES DELAWARE ),, US

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120103