JP4013949B2 - ネットワーク型コンテンツ再生システム - Google Patents

ネットワーク型コンテンツ再生システム Download PDF

Info

Publication number
JP4013949B2
JP4013949B2 JP2004509922A JP2004509922A JP4013949B2 JP 4013949 B2 JP4013949 B2 JP 4013949B2 JP 2004509922 A JP2004509922 A JP 2004509922A JP 2004509922 A JP2004509922 A JP 2004509922A JP 4013949 B2 JP4013949 B2 JP 4013949B2
Authority
JP
Japan
Prior art keywords
client
content server
audio client
list
controller
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.)
Expired - Fee Related
Application number
JP2004509922A
Other languages
English (en)
Other versions
JPWO2003102919A1 (ja
Inventor
文昭 河村
洋一 工藤
進 竹村
泰 池田
年伸 佐野
裕子 芳崎
貴宏 千葉
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.)
Onkyo Corp
Original Assignee
Onkyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Onkyo Corp filed Critical Onkyo Corp
Publication of JPWO2003102919A1 publication Critical patent/JPWO2003102919A1/ja
Application granted granted Critical
Publication of JP4013949B2 publication Critical patent/JP4013949B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • 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
    • G06F16/686Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title or artist information, time, location or usage information, user ratings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements

Description

【技術分野】
【0001】
本発明は、ネットワーク型コンテンツ再生システムに関し、さらに詳しくは、サーバとサーバに接続されたクライアントとサーバに接続されたコントローラとを備えたネットワーク型コンテンツ再生システムに関する。
【背景技術】
【0002】
従来の典型的なオーディオシステムは、媒体から音楽データを読み出し、その音楽データに基づいて音楽を再生するものである。このようなオーディオシステムは基本的に各部屋に1つずつ設置しなければならないため、全体として高価になる。これに対し、1箇所に全ての音楽データを蓄積しておき、各部屋で選択された音楽を再生することの可能な集中型オーディオシステムも提供されている。
【0003】
しかし、上記集中型オーディオシステムでは、音楽信号用の配線や制御信号用の配線等、多数の配線を各部屋に敷かなければならない。また、1つの曲を各部屋で同時に再生することは可能であるが、ある曲をある部屋で再生している最中に、同じ曲を別の部屋で最初から再生することはできない。
【0004】
また、汎用のパソコンに音楽再生用のアプリケーションプログラムをインストールすれば、インターネット上のサイトから音楽データを取得し、音楽を再生することは可能であるが、受信済みのデータについてしか、音楽CDのように、曲を途中から再生したり、早送りしたり、早戻ししたりすることはできない。すなわち、未だ受信していなデータについては、特殊再生をすることができない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の目的は、再生中のコンテンツを列挙したコンテンツリスを記憶しておく必要のないネットワーク型コンテンツ再生システムを提供することである。
【0010】
本発明によるネットワーク型コンテンツ再生システムは、サーバと、サーバに接続された少なくとも1つの第1のクライアントと、サーバに接続された第2のクライアントとを備える。サーバは、複数のコンテンツ(音楽コンテンツ、映像コンテンツなど)を蓄積する蓄積手段と、複数のコンテンツの中から選択されたコンテンツを第1のクライアントに送信するコンテンツ送信手段と、第1のクライアントにより再生されるべき複数のコンテンツを列挙したコンテンツリストを作成するために必要なリスト構築キーを含むクライアント情報を記憶するクライアント情報記憶手段と、第1のクライアントに関するクライアント情報をクライアント情報記憶手段から読み出して第2のクライアントに送信するクライアント情報送信手段と、第2のクライアントからの要求に応じて第2のクライアントから送信されたリスト構築キーに基づいてコンテンツリストを作成するコンテンツリスト作成手段と、コンテンツリスト作成手段により作成されたコンテンツリストを第2のクライアントに返信するコンテンツリスト返信手段とを含む。第1のクライアントは、サーバから返信されたコンテンツを再生する再生手段を含む。第2のクライアントは、サーバから送信されたクライアント情報を受信する手段と、受信されたクライアント情報に含まれるリスト構築キーをサーバに送信することによりコンテンツリストをサーバに要求するコンテンツリスト要求手段と、サーバから返信されたコンテンツリストを受信するコンテンツリスト受信手段とを含む。
【0025】
本ネットワーク型コンテンツ再生システムでは、第のクライアントは、コンテンツリストが必要なときにリスト構築キーをサーバに送信すればコンテンツリストを取得することができるので、取得したコンテンツリストを記憶しておく必要はない。また、リスト構築キーはクライアント情報に含まれ、サーバはこのクライアント情報を記憶するとともに、第2のクライアントに送信されるので、第1のクライアントがコンテンツリストに列挙されたコンテンツを再生している間に、第2のクライアントの電源が一旦切られ、再び投入された場合でも、第2のクライアントはリスト構築キーをサーバに送信しさえすれば、コンテンツリストをいつでも取得することができる。
【0052】
好ましくは、サーバは、第2のクライアントに要求を強制的に送信するためのプッシュポートを通じて、クライアント情報を第2のクライアントに送信する。
【0053】
この場合、サーバは、第2のクライアントから要求がなくても、クライアント情報を第2のクライアントに送信することができる。
【0054】
好ましくは、第2のクライアントはさらに、受信したクライアント情報を表示する手段と、受信したクライアント情報が変更されているとき、そのクライアント情報の表示を変更する手段とを含む。
【0056】
好ましくは、コンテンツリスト要求手段は、受信されたクライアント情報に含まれるリスト構築キーが変更されているとき、そのリスト構築キーをサーバに送信する
【0057】
好ましくは、第2のクライアントは、サーバに接続されたとき、サーバから送信されたクライアント情報を受信する。
【0058】
この場合、第2のクライアントは、電源が投入されると、サーバに接続されるので、サーバから第1のクライアントに関するクライアント情報を取得することができる。
【0126】
再生手段は、サーバから送信されたコンテンツリストに従って再生を完了したコンテンツの次のコンテンツを再生する。
【0127】
この場合、第1のクライアントはこのコンテンツリストに従って自ら連続再生を行う
【0134】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【0135】
[目次]
1.好ましい実施の形態
1.1.構成
1.1.1.全体
1.1.2.コンテンツサーバ
1.1.3.オーディオクライアント
1.1.4.コントローラ
1.1.5.AVレシーバ
1.2.動作
1.2.1.コンテンツサーバ及びオーディオクライアントの初期設定
1.2.1.1.オーディオクライアントの初期設定
1.2.1.1.1.コンテンツサーバ探索
1.2.1.1.2.コンテンツサーバとの接続
1.2.1.1.3.クライアント情報の送信
1.2.1.2.コンテンツサーバの初期設定
1.2.1.2.1.コンテンツサーバ探索に対する応答
1.2.1.2.2.コマンドポート接続受付
1.2.1.2.3.プッシュポート接続受付(その1)
1.2.1.2.4.プッシュポート接続受付(その2)
1.2.2.コンテンツサーバ及びオーディオクライアントのメイン動作
1.2.2.1.コマンド受付
1.2.2.1.1.コマンド振分処理
1.2.2.1.2.ステータス通知コマンド処理
1.2.2.1.3.サーバリクエスト発行コマンド処理
1.2.2.2.通常再生
1.2.2.2.1.曲リスト取得
1.2.2.2.2.曲の指定
1.2.2.2.3.曲の再生
1.2.2.3.特殊再生
1.2.2.3.1.早送り再生
1.2.2.3.2.早戻し再生
1.2.2.3.3.一時停止
1.2.2.3.4.スロー再生
1.2.3.コントローラの動作
1.2.3.1.コンテンツサーバとの接続
1.2.3.1.1.監視ハンドル及び制御ハンドルの取得
1.2.3.2.モニタ(監視)機能
1.2.3.3.制御機能
1.2.3.3.1.制御コマンド処理
1.2.3.3.2.再生制御
1.2.3.3.3.再生可能なフォーマットかを識別して再生
1.2.3.3.4.連続再生制御
1.2.3.3.5.リスト構築キーを用いた連続再生制御
1.2.3.3.6.優先順位を付けた連続再生制御
1.2.3.3.7.制御ハンドルを利用した連続再生制御
1.2.3.3.8.コンテンツサーバによる連続再生制御
1.2.3.3.9.オーディオクライアント自身による連続再生制御
1.2.3.3.10.再生命令管理テーブルを利用した連続再生制御
1.2.4.AVレシーバの制御
1.2.5.ファームウェアアップデート
2.他の実施の形態
2.1.コンセント内蔵型オーディオクライアント
2.2.インターネット上の音楽データを取得
2.3.取得データ長変更機能付き再生
2.4.スキップ再生
2.5.リピート再生
2.6.途中再生
2.7.自動接続回復機能付きクライアント
【0001】
1.好ましい実施の形態
1.1.構成
1.1.1.全体
図1を参照して、本発明の実施の形態によるネットワーク型オーディオシステム10は、多数の曲の音楽データを蓄積するための複数のコンテンツサーバS1〜Siと、コンテンツサーバS1〜Siからの音楽データに基づいて音楽を再生するための複数のオーディオクライアントC1〜Cjと、オーディオクライアントC1〜Cjを制御しかつモニタするための複数のコントローラA1〜Akと、AV機器(例えば、スイッチャやアンプなどを含むAVレシーバ)AVRと、AVレシーバAVRを制御するためのAVRクライアントACとを備える。以下、コンテンツサーバのうち1つを挙げる場合はコンテンツサーバSi、オーディオクライアントのうち1つを挙げる場合はオーディオクライアントCj、コントローラのうち1つを挙げる場合はコントローラAkを用いる。
【0136】
ここではコンテンツサーバSiには音楽データを蓄積しているが、これに代えて又はこれと共に映像データを蓄積していてもよく、その他、さまざまなデジタルコンテンツ(例えば、写真などの静止画等)を蓄積していてもよい。以下では、音楽データを例に説明する。また、コンテンツサーバSi、オーディオクライアントCj、コントローラAkは、それぞれ複数存在するが、コンテンツサーバやオーディオクライアントは少なくとも1つ存在すればよい。複数のコンテンツサーバS1〜Siが存在する場合、オーディオクライアントCjはいずれのコンテンツサーバS1〜Siから音楽データを取得してもよく、また、特定の1つのコンテンツサーバSiのみから音楽データを取得してもよい。また、コントローラAkは全くなくてもよい。また、AVレシーバAVRやAVRクライアントACは複数存在してもよいが、全くなくてもよい。
【0137】
これらは、LAN(ローカルエリアネットワーク)12により相互に接続されるが、これに限定されることなく、USB、IEEE1394など、コンピュータネットワークを構築するのに適切なものを採用すればよい。LANを採用する場合、PC(パーソナルコンピュータ)で標準的なTCP/IPプロトコルを採用するのが好ましいが、UDPプロトコルなどを採用してもよく、プロトコルは特に限定されない。また、この図ではLANの基幹配線から枝分かれするようにコンテンツサーバやオーディオクライアントが接続されているが、たとえば10BASE−Tや100BASE−TXの場合にはハブを中心にしてスター状に接続される。
【0138】
1.1.2.コンテンツサーバ
図2を参照して、各コンテンツサーバSiは、圧縮デジタル音楽データを蓄積するためのHDD(ハードディスクドライブ)14と、データベース管理部16及びネットワークプロトコル処理部18を含むCPU処理部20と、本コンテンツサーバSiとLAN12との間で信号を送受信するLANコントローラ22とを備える。
【0139】
1.1.3.オーディオクライアント
図3を参照して、各オーディオクライアントCjは、ネットワークプロトコル処理部24及びシステム動作部26を含むマイコン処理部28と、フラッシュメモリ30と、順次入力された圧縮デジタル音楽データ等を一時的に記憶して順次出力するメモリ32と、圧縮デジタル音楽データをデコードして非圧縮デジタル音楽データを生成する音声処理部34と、デジタル音楽データをアナログ音楽データに変換するD/A変換器(DAC)36と、本オーディオクライアントCjとLAN12との間で信号を送受信するLANコントローラ38とを備える。オーディオクライアントCjは、コンテンツサーバSiと異なり、圧縮デジタル音楽データを蓄積するためのHDDを備えていなくてもよい。
【0140】
1.1.4.コントローラ
図4を参照して、各コントローラAkは、キーボード、マウス、タブレット、タッチパネル等の入力装置301と、液晶ディスプレイ、CRT(Cathode Ray Tube)等の表示装置302と、インストールされたコンピュータプログラムに従って所定の処理を実行するCPU303と、本コントローラAkとLAN12との間で信号を送受信するLANコントローラ304とを備える。コントローラA1〜AkはオーディオクライアントC1〜Cjと同様にコンテンツサーバS1〜Siに対してクライアントとして機能する。コントローラAkがオーディオクライアントCjと異なる点は、オーディオクライアントCjは再生機能を有するのに対し、コントローラAkは再生機能を有さず、主としてオーディオクライアントのモニタ及び制御機能を有する点である。
【0141】
上記オーディオクライアントCjは主として再生機能を有するが、モニタ及び制御機能を有していてもよい。この場合、オーディオクライアントはコントローラとしても機能する。
【0142】
1.1.5.AVレシーバ
AVレシーバAVRは、特に限定されないが、たとえばEIA−232によりAVRクライアントACに接続される。AVRクライアントACは、主としてAVレシーバAVRと通信できる機能を有するが、オーディオクライアントCjと同様に再生機能を併せて有していてもよい。
【0143】
1.2.動作
1.2.1.コンテンツサーバ及びオーディオクライアントの初期設定動作
図5を参照して、あるオーディオクライアントに電源が投入されると、そのオーディオクライアントはまずコンテンツサーバを探索する(S11)。LAN12に接続されている複数のコンテンツサーバSiのうち稼働中のコンテンツサーバは、これに応答する(S21)。
【0144】
続いて、オーディオクライアントは、コンテンツサーバとデータの送受信を可能にするために、コンテンツサーバに対して接続要求を発行する(S12)。コンテンツサーバは、この接続要求に応じてオーディオクライアントとの接続を確立する(S22)。
【0145】
最後に、オーディオクライアントは自身に関するさまざまなクライアント情報をコンテンツサーバに送信し(S13)、コンテンツサーバはこれを受信する(S23)。
【0146】
上記初期設定動作が終了すると次の曲リスト取得動作に移るが、その説明の前に、オーディオクライアントの初期設定動作の詳細を説明する。
【0147】
1.2.1.1.オーディオクライアントの初期設定動作
1.2.1.1.1.コンテンツサーバ探索
図6を参照して、オーディオクライアントは、まず、発見したコンテンツサーバのIPアドレス及びポート番号を記録するためのサーバリストをクリアする(S1101)。
【0148】
続いて、オーディオクライアントは、特に限定されないが、たとえばUDPプロトコルにより、コマンドポートで予め定められたマジックワードをLAN12上にブロードキャストする(S1102)。LAN12に接続されている複数のコンテンツサーバSiの中に稼働中のコンテンツサーバが存在すれば、そのコンテンツサーバはブロードキャストされたマジックワードをサーチポートで受信し、そのマジックワードをブロードキャストしたオーディオクライアントに同じマジックワードを返信し、併せて自身を特定するためのサーバ特定情報(具体的にはIPアドレス及びポート番号)を送信する。
【0149】
続いて、オーディオクライアントは、サーバ特定情報の受信経過時間を計測するためのタイマをリセットし(S1103)、その後、サーバ特定情報を受信したか否かを判別する(S1104)。
【0150】
サーバ特定情報を受信した場合(コンテンツサーバを発見した場合)、オーディオクライアントは、そのサーバ特定情報をサーバリストに記録する(S1105)。そして、オーディオクライアントは、サーバリストが満杯になったか否かを判別し(S1106)、満杯になった場合は探索を完了し、未だ満杯になっていない場合はステップS1103に戻る。
【0151】
一方、サーバ特定情報を受信しない場合(コンテンツサーバを発見しない場合)、オーディオクライアントは、サーバ特定情報の受信経過時間が所定時間、たとえば2秒を超えたか否かを判別し(S1107)、未だ超えていない場合はステップS1104に戻る。すなわち、オーディオクライアントは2秒間だけコンテンツサーバからの応答を待つ。
【0152】
サーバ特定情報の受信経過時間が2秒を超えた場合、オーディオクライアントは、サーバリストが未だ空か否かを判別する(S1108)。サーバリストが空の場合、つまりサーバリストにサーバ特定情報が全く記録されていない場合、オーディオクライアントはステップS1102に戻ってマジックワードを再びブロードキャストする。一方、サーバリストが空でない場合、つまりサーバリストに少なくとも1つのコンテンツサーバのサーバ特定情報が記録されている場合、オーディオクライアントは探索を完了する。すなわち、オーディオクライアントは少なくとも1つのコンテンツサーバを発見するまで探索を続ける。
【0153】
上記コンテンツサーバ探索の結果、サーバリストには1又は2以上のコンテンツサーバに対応するIPアドレス及びポート番号が付与される。
【0154】
1.2.1.1.2.コンテンツサーバとの接続
図7を参照して、オーディオクライアントは、ユーザの操作に応じてサーバリストの中から1つのコンテンツサーバを選択し(S1201)、その選択したコンテンツサーバのIPアドレス及びポート番号を取得する(S1202)。
【0155】
続いて、オーディオクライアントは、取得したIPアドレス及びコマンドポートでTCP(Transmission Control Protocol)ソケット(1)を生成し(S1203)、このTCPソケット(1)でコンテンツサーバと接続する(S1204)。コマンドポートは、コンテンツサーバとオーディオクライアントとの間でコマンドを送受信するためのポートである。コンテンツサーバがコマンドポートでの接続を受け付け(S2201)、接続が成功した場合はステップS1206に進むが、そうでない場合は接続は失敗となる(S1205)。これによりオーディオクライアントは、コンテンツサーバとの間でコマンドを送受信するための接続を確立する。
【0156】
続いて、オーディオクライアントはTCPソケット(1)でクライアントインデックス要求コマンドをコンテンツサーバに送信する(S1206)。コンテンツサーバは、このクライアントインデックス要求コマンドに応答してTCPソケット(1)からクライアントインデックスをオーディオクライアントに返信し(S2202)、オーディオクライアントはこれを受信する(S1207)。クライアントインデックスは、コンテンツサーバにより各オーディオクライアントに割り当てられる識別番号である。クライアントインデックス要求コマンドは、オーディオクライアントがコンテンツサーバにクライアントインデックスを要求するコマンドである。
【0157】
続いて、オーディオクライアントは、コンテンツサーバのIPアドレス及びプッシュポートでTCPソケット(2)を生成し(S1208)、このTCPソケット(2)でコンテンツサーバと接続する(S1209)。プッシュポートは、コンテンツサーバからの自発的な要求又はコントローラからの要求に応じたコンテンツサーバからの要求(以下「サーバリクエスト」という)を常に受信可能な待機状態にあるポートである。コンテンツサーバがプッシュポートでの接続を受け付け(S209)、接続が成功した場合はステップS1211に進むが、そうでない場合は接続は失敗となる(S1210)。これによりオーディオクライアントは、サーバリクエストを受信するための接続を確立する。
【0158】
この時点では、コンテンツサーバは未だ、プッシュポートに接続されているのはどのオーディオクライアントなのかわかっていない。そこで、オーディオクライアントはステップS1207で取得したクライアントインデックスをTCPソケット(2)でコンテンツサーバに送信する(S1211)。コンテンツサーバは、このクライアントインデックスに基づいてプッシュポートに接続されているオーディオクライアントを特定する。以降、コンテンツサーバは、サーバリクエストをオーディオクライアントに送信するとき、このプッシュポートを使用する。
【0159】
以上の結果、コマンドポート及びプッシュポートで2つの接続が確立する。これら2つの接続は、オーディオクライアントCj及びコンテンツサーバSiの間だけでなく、後述するコントローラAk及びコンテンツサーバSiの間、さらにAVRクライアントAC及びコンテンツサーバSiの間でも確立する。
【0160】
一般に、サーバクライアントシステムでは、HTTPプロトコルに見られるように、クライアントからの要求(ページ要求など)に対し、コンテンツサーバがレスポンス(HTML文書など)を返すというものである。これは、アクションのトリガはクライアントのみが有し、コンテンツサーバが自発的にクライアントに対して働きかけることができないということを意味している。このため、コンテンツサーバがクライアントに対して何らかの要求、たとえばコンテンツサーバシャットダウン時にクライアントにその旨を通知するなど、自発的なアクションをする場合でも、クライアントからの要求がなければ通知を行うことはできない。
【0161】
クライアントがサーバリクエストを受信するためには、一定時間ごとにコンテンツサーバに対してサーバリクエストがないかを確認するコマンドを発行する。コンテンツサーバはクライアントにより発行されたコマンドに応答してサーバリクエストをクライアントに送信し、クライアントはこれを受信する。
【0162】
上記HTTPプロトコルの場合も、動的に更新されるページに関しては一定時間ごとにページのリロードを行わなければならないということが知られている。この手法はクライアントからのポーリングによるサーバリクエストの取得と呼ぶことができるが、以下のような問題点がある。
【0163】
(1)ポーリング間隔をある程度短くして、こまめにサーバリクエストがあるか否かを尋ねないと、コンテンツサーバが要求を生じた時間と実際にその要求をオーディオクライアントが受け取るまでの時間に差が生じる。
【0164】
(2)上記のようにポーリング間隔を短くすると、ネットワークトラフィック及びサーバクライアントの負荷が増大してしまう。
【0165】
(3)コンテンツサーバがサーバリクエストをクライアントに送信しなければならない頻度は通常のコマンドを送受信する頻度に比べて低いので、大概のポーリングは無駄になる。サーバリクエストがあるか否かを尋ねても、通常は何も要求はないと返答されるからである。
【0166】
上記問題を解決するためには、クライアントからのポーリングではなく、コンテンツサーバからのインタラプトでサーバリクエストをクライアントに送信すればよい。これにより、上記(1)で問題となっているリアルタイム性の欠如、並びに上記(2)及び(3)のような無駄な負荷を排除することができる。
【0167】
これを実現するために、上述したように2つの接続を確立している。1つは、オーディオクライアントCjがコマンドを発行し、コンテンツサーバSiがそれに応答するのに用いられるコマンドポートに形成される接続である。もう1つは、コンテンツサーバSiがサーバリクエストをオーディオクライアントCjに送りつけるのに用いられるプッシュポートに形成される接続である。これによりオーディオクライアントCjからのポーリングを用いずに、コンテンツサーバSiがサーバリクエストをオーディオクライアントCjに通知することができる。
【0168】
以下、これら2つの接続を用いた動作の概要を説明する。
【0169】
図8に示すように、コンテンツサーバSiは、シャットダウン時に、プッシュポートを通じて全てのオーディオクライアントCjにその旨を通知し、これによりオーディオクライアントCjに何らかの動作(電源を落とすなど)をさせる。
【0170】
また、図9に示すように、コントローラAkは、オーディオクライアントCjを制御するとき(たとえば再生や停止など)、その制御内容を含むサーバリクエストの発行をコンテンツサーバSiに要求するコマンドをコマンドポートを通じてコンテンツサーバSiに送信する。コンテンツサーバSiはこのコマンドに応答してサーバリクエストをプッシュポートを通じてオーディオクライアントCjに送信する。その結果、コントローラAkはオーディオクライアントCjを制御することができる。
【0171】
さらに、図10に示すように、オーディオクライアントCjは、その動作状態が変化したときに、その動作状態の変化をコマンドポートを通じてコンテンツサーバSiに送信する。コンテンツサーバSiは、その動作状態の変化をプッシュポートを通じてオーディオクライアントCjの動作状態を監視しているコントローラAkに送信する。したがって、オーディオクライアントCjはその動作状態の変化をリアルタイムにコントローラAkに通知することができる。
【0172】
以上により、本ネットワーク型オーディオシステムにおけるネットワークトラフィック並びにコンテンツサーバ及びオーディオクライアントの負荷を最小に抑えることができ、システム全体のパフォーマンスを増大させることができる。
【0173】
1.2.1.1.3.クライアント情報の送信
図11を参照して、オーディオクライアントは、自身の属性情報をコンテンツサーバに送信し(S1301〜S1303)、さらに自身の初期ステータスを送信する(S1304〜S1305)。
【0174】
具体的には、オーディオクライアントは、TCPソケット(1)でオーディオクライアントタイプを送信する(S1301)。オーディオクライアントタイプには、再生可能な音楽フォーマットの種類、リモートコントローラ(リモコン)による操作の可否、EIA−232ポートの有無等がある。
【0175】
続いて、オーディオクライアントは、TCPソケット(1)でプロダクトIDを送信する(S1302)。プロダクトIDは、オーディオクライアントのタイプごとに付与される機種情報である。したがって、同じタイプのオーディオクライアントには同じプロダクトIDが付与される。
【0176】
続いて、オーディオクライアントは、TCPソケット(1)でファームウェアIDを送信する(S1303)。ファームウェアIDは、オーディオクライアントにインストールされているファームウェアのバージョン情報である。
【0177】
続いて、オーディオクライアントは、TCPソケット(1)でボリュームの初期値を送信する(S1304)。ボリュームの初期値は、オーディオクライアントで再生される音量の初期値である。
【0178】
最後に、オーディオクライアントは、TCPソケット(1)でオーディオクライアントの初期ステータスを送信する(S1305)。オーディオクライアントの初期ステータスには、停止ステータス等がある。
【0179】
コンテンツサーバは、クライアントから送信されたクライアント情報を受信し、クライアント情報データベース(図13)に格納する。クライアント情報は、オーディオクライアントCjだけでなく、コントローラAk及びAVRクライアントACからもコンテンツサーバSiに送信される。コンテンツサーバSiは、このクライアント情報に基づいて全てのクライアントを管理する。
【0180】
1.2.1.2.コンテンツサーバの初期設定動作
次に、上記オーディオクライアントの初期設定動作に対応するコンテンツサーバの初期設定動作を説明する。
【0181】
図12を参照して、コンテンツサーバは、図13に示すようなクライアント情報データベースのための格納領域を最大クライアント数分確保し、クリアする(S201)。各クライアント情報は、接続の有無を示すフラグと、クライアントタイプと、現在のステータスと、現在のボリューム値と、プロダクトIDと、ファームウェアIDと、クライアント名と、再生ファイル名と、リスト構築キーとを含む。
【0182】
クライアントタイプには、オーディオクライアント、コントローラ、AVRクライアントといったクライアントのタイプと、再生可能なデータフォーマット(MP3、WAVなど)とが記録される。クライアントタイプにはさらに、リモコン制御の可否も記録される。たとえばリモコンにより制御可能なオーディオクライアントには、リモコン制御可能という情報が記録される。ステータスには、「再生」、「停止」、「ポーズ」、「完了」、「ファームウェアアップデート中」などのステータスが記録される。再生ファイル名には、現在再生中の曲のデータが格納されているHDD14のフルパス名が記録される。また、再生ファイル名はフルパス名のようなファイル名そのものである必要はなく、そのファイルを特定可能な情報であればいかなる情報であってもよい。たとえばコンテンツサーバに所定の識別番号とファイル名とを対応つけたテーブルを記憶しておき、コンテンツサーバがこのテーブルを参照して識別番号をファイル名に変換するようにしてもよい。この場合、長いファイル名を送受信する必要がなくなる。また、ファイル名から直ちに曲のデータが格納されているファイルを特定することができないので、セキュリティが向上する。さらに、リスト構築キーは、コンテンツサーバがリストを作成するためのものであるが、詳細は後述する。
【0183】
続いて、コンテンツサーバは、コマンドポートへの接続要求を受け付けるソケットと、プッシュポートへの接続要求を受け付けるソケットと、サーチポートへのサーバ探索要求を受け付けるソケットとを作成する(S202)。サーチポートは、コンテンツサーバ探索時に使うポートであり、このサーチポートにマジックワードが入力されたかどうかをコンテンツサーバは監視する。
【0184】
続いて、コンテンツサーバは、図14に示すようなコンテンツ情報データベースと、図15に示すようなファームウェア情報データベースとを構築する(S203)。コンテンツ情報データベースは、コンテンツ情報を曲数分備える。各曲のコンテンツ情報は、ファイル名と、曲名と、アーティスト名と、アルバム名と、ジャンル名と、曲の長さ(時間)と、データフォーマットと、再生回数と、最終アクセス時間とを含む。このファイル名には、当該曲のデータが格納されているHDD14のフルパス名が記録される。ファームウェア情報データベースは、ファーム情報をファームウェアのファイル数分備える。ファームウェア情報は、プロダクトIDと、ファームウェアIDと、ファイルサイズと、データフォーマットと、ファイル名とを含む。このファイル名には、当該ファームウェアが格納されているインターネット上のサイトを示すフルパス名が記録される。
【0185】
コンテンツサーバは、サーチポートに書込があった場合(S204)、後述するコンテンツサーバ探索に対する応答処理を行う(S205)。コンテンツサーバはまた、コマンドポートに書込があった場合(S206)、後述するコマンドポート接続受付処理を行う(S207)。コンテンツサーバはまた、プッシュポートに書込があった場合(S208)、後述するプッシュポート接続受付処理(その1)を行う(S209)。コンテンツサーバはまた、未処理プッシュポートに書込があった場合(S210)、後述するプッシュポート接続受付処理(その2)を行う(S211)。
【0186】
1.2.1.2.1.コンテンツサーバ探索に対する応答
図16を参照して、サーチポートに書込があった場合、コンテンツサーバは、その書き込まれた内容を取得し(S2051)、その内容が正しいマジックワードか否かを判別する(S2052)。正しいマジックワードであれば、コンテンツサーバは同じマジックワードを送信元クライアントに返信し(S2053)、併せて自身のIPアドレス及びポート番号を返信する。
【0187】
1.2.1.2.2.コマンドポート接続受付
図17を参照して、コマンドポートにクライアントから接続の要求があった場合、コンテンツサーバは、現在接続されているクライアント数が最大クライアント数に達しているか否かを判別する(S2071)。最大クライアント数に達している場合、コンテンツサーバは、優先度の低いクライアントを探し、強制的に切断する(S2072)。クライアントの優先度は、現在再生を行っていないオーディオクライアント、一定時間通信を行っていないオーディオクライアント等ほど、低くなる。そして、コンテンツサーバは、強制的に切断したクライアントのクライアント情報をクリアする(S2073)。
【0188】
なお、現在接続されているクライアント数が最大クライアント数に達している場合、上記に代えて、コンテンツサーバはこれ以上クライアントと接続しないようにしてもよい。
【0189】
クライアントの接続可能なソケットに余裕がある場合、又は優先度の低いクライアントを切断して接続可能なソケットを確保した場合、コンテンツサーバは、クライアントからの接続要求の受付を開始する(S2074)。
【0190】
受付が成功した場合(S2075)、コンテンツサーバは、クライアント情報データベースの空き領域を探す(S2076)。具体的には、フラグがFALSEになっているクライアント情報を探す。コンテンツサーバは、その探した領域を新しいクライアント情報格納領域に割り当て(S2077)、前のクライアント情報をクリアする(S2078)。
【0191】
続いて、コンテンツサーバはフラグをTRUEに設定し(S2078)、受付の結果として得られたソケット情報をクライアント情報格納領域のソケットフィールドに格納する(S2079)。
【0192】
1.2.1.2.3.プッシュポートへの接続受付処理(その1)
図18を参照して、プッシュポートにクライアントから接続の要求があった場合、コンテンツサーバは、その受付を開始する(S2091)。受付が成功した場合(S2092)、受付の結果として得られたソケット情報を未処理プッシュポートのキューに格納する(S2093)。この時点では未だ、コンテンツサーバはプッシュポートに接続されたクライアントを特定できていない。このようなプッシュポートを未処理プッシュポートという。
【0193】
1.2.1.2.4.プッシュポート接続受付処理(その2)
図19を参照して、未処理プッシュポートにクライアントから接続の要求があった場合、コンテンツサーバは、そのプッシュポートに書き込まれたコマンドを取得する(S2111)。そのコマンドのサイズが0よりも大きく(S2112)、かつそのコマンドがクライアントインデックス通知コマンドであれば(S2113)、コンテンツサーバは、そのクライアントインデックスが示すクライアントは既にコマンドポートに接続されているか否かを判別する(S2114)。
【0194】
未だ接続が完了していない場合、コンテンツサーバはエラーコードを−1(失敗)に設定し(S2115)、ステップS2119に進む。一方、既に接続が完了している場合、コンテンツサーバは、このプッシュポートをそのクライアント用のプッシュポートとして登録する(S2116)。コンテンツサーバはさらに、このプッシュポートを未処理プッシュポートのキューから削除し(S2117)、エラーコードを0(成功)に設定する(S2118)。そして、コンテンツサーバは、設定されたエラーコードをクライアントに返信する(S2119)。
【0195】
1.2.2.コンテンツサーバ及びオーディオクライアントのメイン動作
1.2.2.1.コマンド受付
再び図12を参照して、コンテンツサーバは、初期設定を完了した後、クライアントからのコマンドを受け付ける。すなわち、コンテンツサーバは、ステップS213〜S217を最大クライアント数分繰り返す(S212、S218、S219)。nは、クライアントに割り当てられる0から(最大クライアント数−1)までのクライアントインデックスである。
【0196】
具体的には、コンテンツサーバは、クライアント情報データベースのフラグを参照し、n番目のクライアントが既にコマンドポートに接続されているか否かを判別する(S213)。既に接続されている場合、コンテンツサーバはn番目のクライアント用のコマンドポートに書込があったか否かを判別する(S214)。書込があった場合、コンテンツサーバはその書き込まれたデータのサイズが0又は−1であるか否かを判別する(S215)。0又は−1の場合、クライアントが切り離されたか、又はソケットエラーが発生したかであるから、コンテンツサーバはn番目のクライアント情報をクリアする(S216)。一方、そうでない場合、コンテンツサーバは次のコマンド処理を行う(S217)。
【0197】
1.2.2.1.1.コマンド振分処理
図20を参照して、クライアントからコマンドポートへの書込があった場合、コンテンツサーバは、先頭4バイトに格納されたコマンドに応じて処理を分岐する(S2171)。すなわち、オーディオクライアントからコンテンツサーバにステータスの変動を通知するといったステータス通知コマンドであれば(S2172)、オーディオクライアントから通知されたステータスをコントローラに通知する(S2173)。詳細は後述する。また、コントローラからオーディオクライアントへのコンテンツサーバリクエスト発行コマンドであれば(S2174)、コントローラからの要求をオーディオクライアントに通知する(S2175)。詳細は後述する。その他、コンテンツサーバはコマンドに応答して所定の処理を行う。
【0198】
1.2.2.1.2.ステータス通知コマンド処理
あるオーディオクライアント(以下「当該オーディオクライアント」という。)からのコマンドがステータス通知コマンドの場合、図21を参照して、コンテンツサーバは、まず、そのコマンド中のパラメータに格納されたステータスやボリューム等のクライアント情報をクライアント情報データベースに格納する(S21731)。したがって、コンテンツサーバは常に最新のクライアント情報を保持している。
【0199】
次に、コンテンツサーバは、全てのクライアントの中からコントローラを探し出し、探し出したコントローラに当該オーディオクライアントのステータスを通知する。そのため、コンテンツサーバは、以下のステップS21733〜S21736を最大クライアント数分繰り返す(S21732、S21737、S21738)。
【0200】
具体的には、コンテンツサーバは、クライアント情報のクライアントタイプを参照して、n番目のクライアントがコントローラか否かを判別する(S21733)。したがって、当該オーディオクライアントのステータスをコントローラではない当該他のオーディオクライアントに通知することを防ぐことができる。コントローラであれば、コンテンツサーバは、そのコントローラが当該オーディオクライアントに対する監視ハンドルを取得しているか否かを判別する(S21734)。監視ハンドルを取得していれば、コンテンツサーバは、そのコントローラがプッシュポートへの接続を完了しているか否かを判別する(S21735)。
【0201】
プッシュポートへの接続を完了していれば、コンテンツサーバは、そのコントローラのプッシュポートに当該オーディオクライアントのクライアント情報を書き込み、これにより当該オーディオクライアントのステータスをコントローラに通知する(S21736)。
【0202】
1.2.2.1.3.サーバリクエスト発行コマンド処理
コントローラからのコマンドがサーバリクエスト発行コマンドの場合、図22を参照して、コンテンツサーバは、まず、そのコマンドに含まれる発行元コントローラ、送信先オーディオクライアント、要求内容等を取得する(S21751)。
【0203】
コンテンツサーバは、発行元コントローラが送信先オーディオクライアントの制御ハンドル(後述)を取得しているか否かを判別し(S21752)、制御ハンドルを取得していなければエラーコードを−1に設定する(S21753)。したがって、制御ハンドルを取得していないコントローラがオーディオクライアントを制御するのを防止することができる。
【0204】
制御ハンドルを取得していれば、コンテンツサーバは、クライアント情報中のフラグを参照して送信先オーディオクライアントのコマンドポートで接続が確立しているか否かを判別し(S21754)、確立していなければエラーコードを−2に設定する(S21755)。したがって、制御不可能なオーディオクライアントにコマンドを送信するのを防止することができる。
【0205】
送信先オーディオクライアントのコマンドポートで接続が確立していれば、コンテンツサーバは、送信先オーディオクライアントのプッシュポートで接続が確立しているか否かを判別し(S21756)、確立していなければエラーコードを1に設定する(S21757)。一方、確立していれば、コンテンツサーバは、送信先オーディオクライアントのプッシュポートにコントローラからの要求内容を送信し(S21758)、エラーコードを0(エラーなし)に設定する(S21759)。
【0206】
最後に、コンテンツサーバは、発行元コントローラにエラーコードを返信する(S21760)。
【0207】
なお、送信先オーディオクライアントがプッシュポートに接続されていない場合は、送信先オーディオクライアントがポーリングで問い合わせをしてきたときに、コントローラからの要求内容を送信先オーディオクライアントに送信するようにしてもよい。
【0208】
1.2.2.2.通常再生
次に、ユーザがオーディオクライアントCjに所望の曲を再生させる場合の動作を説明する。ここでは、ユーザは所望の曲を直ちに指定するのではなく、まず所望の曲リストを指定し、その曲リストの中から所望の曲を選択する。以下、詳述する。
【0209】
図23を参照して、オーディオクライアントは、ユーザの操作に応じて曲リスト要求コマンドをコンテンツサーバに送信する(S14)。曲リスト要求コマンドは、オーディオクライアントがコンテンツサーバに対して所望の曲リストを要求するためのコマンドである。曲リストには、複数の曲名やアーティスト名などが列挙されている。コンテンツサーバはこの曲リスト要求コマンドに応じて曲リストを要求元のオーディオクライアントに送信し(S24)、オーディオクライアントはこれを受信する(S14)。
【0210】
オーディオクライアントはユーザの操作に応じて曲リストに含まれる曲を指定し(S15)、コンテンツサーバはこれに応じて指定された曲の配信を準備する(S25)。
【0211】
続いて、コンテンツサーバは指定された曲をオーディオクライアントに配信し(S26)、オーディオクライアントは配信された曲を再生する(S16)。そして、オーディオクライアントは、再生終了後又はユーザの操作に応じて曲の再生を停止する(S17)。
【0212】
以下、ステップS14〜S16の各々の詳細を説明する。
【0213】
1.2.2.2.1.曲リスト取得
図24を参照して、オーディオクライアントは、コンテンツサーバにプレイ名リストを要求するか否かを判別する(S1401)。プレイ名リストは、プレイリストのタイトルを列挙したものである。プレイリストは、ユーザにより選択された複数の曲を列挙した曲リストである。コンテンツサーバには、ユーザにより作成された複数のプレイリストが予め格納されている。
【0214】
ユーザは、コンテンツサーバに格納されている複数のプレイリストの中から1つを選択しようとする場合、まずどのようなプレイリストが登録されているのかを確認するために、コンテンツサーバにプレイ名リストを要求する。オーディオクライアントはこのユーザの操作に応じてコンテンツサーバにプレイ名リストを要求し、コンテンツサーバからプレイ名リストを受信する(S1402)。
【0215】
続いて、オーディオクライアントは、指定されたプレイリストを要求するか否かを判別する(S1403)。ユーザがプレイ名リストの中から所望のプレイリストを指定し、この操作に応じてオーディオクライアントが指定されたプレイリストを要求する場合はステップS1413に進み、要求しない場合はステップS1401又S1403に戻る(S1404)。
【0216】
プレイ名リストを要求しない場合、オーディオクライアントは、コンテンツサーバにアーティストリストを要求するか否かを判別する(S1405)。アーティストリストには、複数のアーティスト名が列挙されている。アーティストリストはコンテンツサーバに予め用意されているのではなく、オーディオクライアントからの要求に応じて図14に示したコンテンツ情報データベースからその都度作成される。
【0217】
ユーザがアーティストリストを要求する場合、オーディオクライアントはユーザの操作に応じて所望のアーティストリストをコンテンツサーバに要求し、コンテンツサーバからアーティストリストを受信する(S1406)。
【0218】
続いて、オーディオクライアントは、指定されたアーティストの曲リストを要求するか否かを判別する(S1407)。ユーザがアーティストリストの中から所望のアーティストを指定し、この操作に応じてオーディオクライアントが指定されたアーティストの曲リストを要求する場合はステップS1413に進み、要求しない場合はステップS1401又S1407に戻る(S1408)。この曲リストには指定されたアーティストの曲名などが列挙されているが、この曲リストも上記アーティストリストと同様にコンテンツサーバに予め用意されているのではなく、オーディオクライアントからの要求に応じて図14に示したコンテンツ情報データベースからその都度作成される。
【0219】
アーティストリストを要求しない場合、オーディオクライアントは、コンテンツサーバにジャンルリストを要求するか否かを判別する(S1409)。ジャンルリストには、複数のジャンル名が列挙されている。ジャンルリストも上記アーティストリストと同様にコンテンツサーバに予め用意されているのではなく、オーディオクライアントからの要求に応じて図14に示したコンテンツ情報データベースからその都度作成される。
【0220】
ユーザがジャンルリストを要求する場合、オーディオクライアントはユーザの操作に応じて所望のジャンルリストをコンテンツサーバに要求し、コンテンツサーバからジャンルリストを受信する(S1410)。
【0221】
続いて、オーディオクライアントは、指定されたジャンルの曲リストを要求するか否かを判別する(S1411)。ユーザがジャンルリストの中から所望のジャンルを指定し、この操作に応じてオーディオクライアントが指定されたジャンルの曲リストを要求する場合はステップS1413に進み、要求しない場合はステップS1401又S1411に戻る(S1412)。この曲リストには指定されたジャンルの曲名などが列挙されているが、この曲リストも上記アーティストの曲リストと同様にコンテンツサーバに予め用意されているのではなく、オーディオクライアントからの要求に応じて図14に示したコンテンツ情報データベースからその都度作成される。
【0222】
上記の結果、曲リストを要求する場合、オーディオクライアントはコンテンツサーバに曲リストを要求し、コンテンツサーバから曲リストを受信する(S1413)。これにより曲リストの取得は終了する。
【0223】
次に、図25を参照して、ジャンルリストを取得し、その中から所望のジャンルとしてポップスを選択してポップスの曲リストを取得する場合の動作を説明する。
【0224】
この場合、オーディオクライアントは、コンテンツサーバにジャンルリストを要求するためのリスト要求コマンドを送信する(S1421)。コンテンツサーバは、これに応答してジャンルリストを返信する(S2401)。オーディオクライアントは、コンテンツサーバからジャンルリストを受信し、図26に示すようにメモリ32に格納する(S1422)。
【0225】
ジャンルリストは、予め作成してコンテンツサーバに保存しておいてもよいが、ここではそうではなく、オーディオクライアントから要求されるたびに、コンテンツサーバが図14に示したコンテンツ情報データベースに基づいてジャンルリストを作成する。以下、ジャンルリストの作成方法を説明する。
図27に示すように、コンテンツ情報データベースは、n曲を保存している場合、n個のレコードを有する。各レコードには、曲名、ジャンル、アーティスト名、アルバム名などが記録されている。
【0226】
このようなコンテンツ情報データベースを用いてジャンルリストを作成する場合、図28を参照して、まず、コンテンツサーバは、レコードの番号を示すインデックスを0に初期化する(S24011)。
【0227】
続いて、コンテンツサーバは、インデックスが示すレコードのジャンルが既にジャンルリストに存在するか否かを判別する(S24012)。存在しない場合、コンテンツサーバはそのレコードのジャンルをジャンルリストに追加し(S24013)、その後、インデックスをインクリメントする(S24014)。一方、存在する場合、コンテンツサーバは、ステップS24013をスキップし、直ちにインデックスをインクリメントする(S24014)。
【0228】
続いて、コンテンツサーバは、インデックスが示すレコードの番号が全レコード数nよりも小さいか否かを判別し(S24015)、小さい場合はステップS24012に戻り、一方、小さくない場合はジャンルリストの作成を完了する。
【0229】
上記の処理により、コンテンツサーバは、コンテンツ情報データベースに蓄積されている全ての曲のジャンルを重複することなくピックアップし、ジャンルリストを作成する。このように、ジャンルリストは予めデータベース化されているのではなく、オーディオクライアントからの要求のたびに一時的に作成されるので、ジャンルリストを常に格納しておくためのメモリ領域は不要である。
【0230】
再び図25を参照して、作成されたジャンルリストはコンテンツサーバからオーディオクライアントに送信される(S2401,S1422)。ユーザは、このジャンルリストの中から所望のジャンル(この例ではポップス)を選択する。オーディオクライアントは、ユーザの操作に応じて選択されたジャンルの曲リストをコンテンツサーバに要求する(S1423)。コンテンツサーバは、オーディオクライアントからの要求に応じて選択されたジャンルの曲リストをコンテンツサーバに返信する(S2402)。オーディオクライアントは、コンテンツサーバから曲リストを受信し、図29に示すようにメモリ32に格納する(S1424)。
【0231】
上記ジャンルリストと同様に、曲リストもコンテンツサーバに予め用意されているのではなく、図27に示したコンテンツ情報データベースに基づいて作成される。すなわち、コンテンツサーバは、オーディオクライアントから曲リストを要求されるたびに、コンテンツ情報データベースに基づいて曲リストを作成する。以下、曲リストの作成方法を図30を参照して説明する。
【0232】
まず、コンテンツサーバは、図27に示したコンテンツ情報データベースにおけるレコードの番号を示すインデックスを0に初期化する(S24021)。
【0233】
続いて、コンテンツサーバは、インデックスが示すレコードのジャンルを選択されたジャンル(この例ではポップス)と比較し、それらが一致するか否かを判別する(S24022)。一致する場合、コンテンツサーバはそのレコードの曲名、アーティスト名、アルバム名などを曲リストに追加し(S24023)、その後、インデックスをインクリメントする(S24024)。一方、一致しない場合、コンテンツサーバは、ステップS24023をスキップし、直ちにインデックスをインクリメントする(S24024)。
【0234】
続いて、コンテンツサーバは、インデックスが示すレコードの番号が全レコード数nよりも小さいか否かを判別し(S24025)、小さい場合はステップS24022に戻り、一方、小さくない場合は曲リストの作成を完了する。
【0235】
上記の処理により、コンテンツサーバは、選択されたジャンルの曲だけをコンテンツ情報データベースからピックアップし、曲リストを作成する。このように、曲リストは予めデータベース化されているのではなく、オーディオクライアントからの要求のたびに一時的に作成されるので、曲リストを常に格納しておくためのメモリ領域は不要である。
【0236】
なお、曲リストを作成する場合には、該当する全ての曲をピックアップするのではなく、再生不可能なデータフォーマットの曲についてはピックアップしないようにしてもよい。また、オーディオクライアントからの要求のたびに曲リストを作成するのではなく、一旦作成した曲リストはキャッシュしておくようにしてもよい。この場合、曲リストを格納しておくためのメモリ領域が必要になるが、コンテンツサーバはオーディオクライアントからの要求に応じて直ちに曲リストを返信することができる。
【0237】
上記ジャンルリストと同様に、曲リストも全部が一度に送信されるのではなく、少しずつ順に送信される。すなわち、曲リストの要求(S1423,S1425)、曲リストの返信(S2402,S2403)及び曲リストの受信(S1424,S1426)の動作は繰り返し行われる。以下、この詳細を説明する。
【0238】
オーディオクライアントは、図31に示すようなリスト要求コマンドをコンテンツサーバに送信する(S1423)。リスト要求コマンドは、オーディオクライアントがコンテンツサーバにリストを要求するコマンドであり、この例では、取得開始インデックス、取得個数及びリスト構築キーを含む。取得開始インデックスは、選択されたジャンルリストに収録されている曲のうち、オーディオクライアントが取得しようとする先頭の曲を示すインデックスである。取得個数は、オーディオクライアントが取得しようとする曲の数である。リスト構築キーは、詳細は後述するが、コンテンツ情報データベースから曲を抽出するときに注目するカテゴリを示すフィルタの種類と、そのカテゴリに分類される具体的なキーワードとから構成される。特に限定されないが、この例では、取得開始インデックス=0、取得個数=50に設定され、さらにリスト構築キーは「ジャンル(フィルタの種類)=ポップス(キーワード)」に設定されている。
【0239】
コンテンツサーバは、このリスト要求コマンドに応答して、図32に示すような検索データをオーディオクライアントに返信する(S2402)。検索データは、曲リストの一部のほか、有効個数及び残り個数を含む。有効個数は、コンテンツサーバがオーディオクライアントに実際に返信した曲の数である。残り個数は、コンテンツサーバがオーディオクライアントに返信した曲リストよりも後に残っている曲の数である。ここでは、取得開始インデックス=0、取得個数=50のリスト要求コマンドに応答するのであるから、コンテンツサーバは、作成した曲リストのうち最初の曲から50曲目までをオーディオクライアントに返信する(S2402)。曲リストの全曲数=110とすると、有効個数=50、残り個数=60(=110−50)に設定される。
【0240】
続いて、オーディオクライアントは、コンテンツサーバに未だ60曲が残っているから、再びリスト要求コマンドをコンテンツサーバに送信する(S1425)。ここでは、取得開始インデックス=51、取得個数=50に設定される。
【0241】
コンテンツサーバは、このリスト要求コマンドに応答して、再び検索データをオーディオクライアントに返信する(S2403)。ここでは、有効個数=50、残り個数=10(=110−(50+50))に設定される。すなわち、コンテンツサーバは、再び曲リストを50曲分だけオーディオクライアントに返信する(S2403)。オーディオクライアントは、この曲リストを受信し、メモリ32に格納する(S1426)。
【0242】
なお、上記の例では、曲リストの全曲数=110、取得個数=50であるから、曲リストの一部である50曲が返信されているが、曲リストの全曲数が取得個数よりも少ない場合、たとえば曲リストの全曲数=40、取得個数=50であれば、曲リストの全部である40曲が返信されることになる。
【0243】
また、上記の例では、取得開始インデックス=0であるから、曲リストの最初から曲が返信されているが、たとえば取得開始インデックス=10とすれば、曲リストの11曲目から曲が返信されることになる。また、この場合、曲リストの全曲数=110であり、最初のリスト要求コマンドが取得開始インデックス=10、取得個数=50であれば、コンテンツサーバは、有効個数=50、残り個数=50(=110−10−50)の検索データを返信することになる。
【0244】
メモリ32に格納可能な曲数が曲リストの全曲数よりも多ければ、オーディオクライアントは曲リストの全部を一度に格納することができる。しかし、メモリ32の容量はコンテンツサーバに比べると非常に小さいため、通常、オーディオクライアントは曲リストの一部しかメモリ32に格納することができない。
【0245】
上記実施の形態によれば、オーディオクライアントはコンテンツサーバから曲リストを分割してダウンロードしているため、オーディオクライアントのメモリ32に少なくとも50曲分の領域を用意すれば、110曲全ての曲リストをダウンロードすることができる。そのため、メモリ32の容量を小さく抑えることができる。
【0246】
たとえば図33Aに示すように、オーディオクライアントがメモリ32に50曲分の曲リストを格納した後、ユーザが51曲目以降の取得を希望した場合、図33Bに示すように、オーディオクライアントは後半の曲リストをメモリ32の前半に移動させる。そして、図33Cに示すように、オーディオクライアントはメモリ32の後半に51曲目から25曲分の曲リストを格納する。
【0247】
オーディオクライアントは、上記動作を繰り返して曲リストの全部を受信するか、又はメモリ32に格納可能な曲数だけ受信する。
【0248】
図25に示した例では、ジャンルを選択した後、直ちにそのジャンルから曲を選択するようにしているが、図34に示したように、ジャンルを選択し、引き続きそのジャンルからアルバムを選択した後、そのアルバムから曲を選択するようにしてもよい。
【0249】
この場合、オーディオクライアントは、ユーザの操作に応じて選択されたジャンルのアルバムリストをコンテンツサーバに要求する(S1427)。コンテンツサーバは、オーディオクライアントからの要求に応じて選択されたジャンルのアルバムリストをオーディオクライアントに返信する(S2404)。オーディオクライアントは、コンテンツサーバからアルバムリストを受信し、メモリ32に格納する(S1428)。
【0250】
続いて、オーディオクライアントは、ユーザの操作に応じて選択されたアルバムの曲リストをコンテンツサーバに要求する(S1429)。コンテンツサーバは、オーディオクライアントからの要求に応じて選択されたアルバムの曲リストをオーディオクライアントに返信する(S2405)。
【0251】
1.2.2.2.2.曲の指定
図35及び図36を参照して、オーディオクライアントは指定された曲の情報をコンテンツサーバに要求し(S1501)、コンテンツサーバはこの要求に応じて指定された曲の情報をオーディオクライアントに返信し(S2501)、オーディオクライアントはこれを受信する(S1502)。
【0252】
具体的には、オーディオクライアントは、図37に示すような曲情報要求コマンドを送信する(S1501)。この曲情報要求コマンドは、指定された曲のファイル名を含む。コンテンツサーバは、この曲情報要求コマンドに応答して、図38に示すような曲情報を返信する(S2501)。この曲情報は、指定された曲のデータオフセット及びデータサイズを含む。MP3等の音楽データは一般に、コンテンツ情報の前にヘッダ情報を有する。データオフセットは、このヘッダ情報をスキップし、曲の先頭アドレスを指定するためのものである。オフセットをコンテンツサーバが解析することにより、オーディオクライアントはオフセットを解析する必要がなくなる。一般的に、コンテンツサーバはオーディオクライアントよりも処理能力が高いので、システム全体として処理を高速化することができる。データサイズは、曲の終了時期を確認するためのものである。
【0253】
続いて、オーディオクライアントは指定された曲の再生準備をコンテンツサーバに要求し(S1503)、コンテンツサーバはこの要求に応じて指定された曲のファイルをオープンし、その結果をオーディオクライアントに返信し(S2502)、オーディオクライアントはこれを受信する(S1504)。
【0254】
具体的には、オーディオクライアントは、図39に示すような曲再生準備コマンドを送信する(S1503)。この曲再生準備コマンドは、指定された曲のファイル名及び後述するリスト構築キーを含む。コンテンツサーバは、この曲再生準備コマンドに応答してファイルをオープンし、図40に示すようなエラーコードを返信する(S2502)。このエラーコードは、ファイルが存在しないなど、ファイル転送の準備ができない場合はエラーありとなり、準備ができる場合はエラーなしとなる。クライアントは送信されたエラーコードを確認し、エラーがあれば所定のエラー処理を行う(S1504)。
【0255】
1.2.2.2.3.曲の再生
続いて、オーディオクライアントは指定された曲の音楽データのうち指定範囲の音楽データの転送をコンテンツサーバに要求し(S1601)、コンテンツサーバはこの要求に応じて指定範囲の音楽データをオーディオクライアントに返信し(S2601)、オーディオクライアントはこれを受信し、メモリ32に格納する(S1602)。
【0256】
具体的には、オーディオクライアントは、図41に示すような曲データ転送要求コマンドを送信する(S1601)。この曲データ転送要求コマンドは、転送すべき音楽データの取得開始アドレス及び取得データ長を含む。コンテンツサーバは、図42に示すように、取得開始アドレスにより指定された先頭アドレスからその取得データ長分だけ音楽データを返信する(S2601)。1回に送信されるデータのサイズは、特に限定されないが、好ましくは1K〜32Kバイトであり、さらに好ましくは4K〜16Kバイトである。コンテンツサーバは一度に返信するデータ量が小さいほど負荷を小さくすることができ、クライアントは一度に受信するデータ量が大きいほど処理を早くすることができるが、1K〜32Kバイト(特に、4K〜16Kバイト)がコンテンツサーバとクライアントとの両方にとって、最適な値となるからである。このようなデータのサイズはオーディオクライアント側で予め設定される。
【0257】
上記取得開始アドレスを転送した取得データ長分だけ順次加算していき、上記動作を繰り返すことにより(S1605、S2603、S1606、S1607、S2604、S1608)、音楽データを指定範囲ごとに順次転送することができる。
【0258】
このように、オーディオクライアントは指定した範囲の音楽データをコンテンツサーバから取得することができるので、後述するように、曲を途中から再生できるほか、早送り再生、早戻し再生、スロー再生など、ユーザの操作に応じて音楽を自在に再生することができる。
【0259】
メモリ32は、複数(図43に示した例では8つ)のバッファを含む。図44に示すように、オーディオクライアントは曲データ転送要求コマンドで曲の先頭から1バッファ分の音楽データを取得して格納する。図45に示すように、オーディオクライアントは同様にしてバッファが全て埋まるまで音楽データを取得して格納する。
【0260】
ステップS1601〜S1608の間で上記のようにバッファが全て埋まったら、オーディオクライアントは、図46に示すように先頭バッファから音楽データを音声処理部34に出力し始める。
【0261】
オーディオクライアントは、上記のように音楽データを出力して音楽の再生を開始したら、再生ステータスをコンテンツサーバに送信する(S1603)。コンテンツサーバはこれを受信し、エラーコードをオーディオクライアントに返信する(S2602)。オーディオクライアントはこのエラーコードを確認し、エラーがあれば所定のエラー処理を行う(S1604)。
【0262】
上記のように音楽データを転送しながら音楽を再生していると、やがて図47に示すように1バッファ分の空きが生じる。バッファに空きが生じると(S1609)、オーディオクライアント及びコンテンツサーバは再び上記転送動作を行う(S1610、S2605、S1611)。その結果、図48に示すようにバッファの空きが埋まる。オーディオクライアント及びコンテンツサーバは、バッファに空きが生じるたびに上記転送動作を繰り返し行う(S1612〜S1616、S2606、S2607)。
【0263】
なお、上記では、バッファが音楽データで全て埋まってから音楽データを出力し始めているが、全て埋まる前に出力し始めるようにしてもよい。
【0264】
続いて、オーディオクライアントは、ステップS1502で取得したデータサイズに基づいて、指定された曲の音楽データを全て受信したか否かを判別する(S1617)。全て受信した場合、オーディオクライアントは、受信した音楽データに基づいて指定された曲を再生し終えたか否かを判別し(S16171)、再生し終えた場合は停止又は完了ステータスをコンテンツサーバに送信する(S1618)。ユーザがオーディオクライアントを操作し、それに応じてオーディオクライアントが指定された曲を再生しその曲を再生し終えた場合、又はユーザがオーディオクライアントを操作し、それに応じてオーディオクライアントが曲の再生を途中で停止した場合、オーディオクライアントは停止ステータスを送信する。一方、ユーザがコントローラを操作し、それに応じてオーディオクライアントがコントローラから指定された曲を再生しその曲を再生し終えた場合、オーディオクライアントは完了ステータスを送信する。このように停止ステータスと完了ステータスとを区別する理由は後述する。
【0265】
コンテンツサーバはこのステータスを受信し、エラーコードをオーディオクライアントに返信する(S2608)。オーディオクライアントはこのエラーコードを確認し、エラーがあれば所定のエラー処理を行う(S1619)。
【0266】
以上のように、音楽データを分割し、コンテンツサーバからオーディオクライアントに断続的に転送しているため、バッファ容量が少なくても適切に音楽を再生することができる。
【0267】
上記では音楽データをバイト単位で転送しているが、MP3の音楽データを転送する場合はフレーム単位で転送するのが好ましい。時間表示、早送り又は早戻し再生などの特殊再生(後述)で有利な点が多いからである。したがって、MP3の音楽データの場合、オーディオクライアントはフレーム単位で音楽データを要求するものとする。この要求に応答して、コンテンツサーバは指定されたファイルの中からMP3のフレームヘッダを検索し、フレームの先頭から転送を行う。このヘッダの中にはデータ長を算出することができるパラメータが含まれているので、一度ヘッダを発見すれば、以降、フレームの先頭を発見するのは困難ではない。
【0268】
1.2.2.3.特殊再生
また、早送り、早戻し、一時停止、スローなど、特殊再生を可能とするために、音楽データの転送要求、返信及び取得という一連の処理の前に、オーディオクライアントは以下のような処理を行う。
【0269】
1.2.2.3.1.早送り再生
早送り再生の場合、図49を参照して、オーディオクライアントは、キー入力を監視し(S1620)、早送り再生キーが押された場合はスキップ量を0よりも大きい値に設定し(S1621)、そうでない場合はスキップ量を0に設定する(S1622)。
【0270】
バッファに空きが生じると(S1609)、オーディオクライアントは、音楽データの取得開始アドレスを次式により計算する(S1624)。
【0271】
取得開始アドレス=前回の取得開始アドレス+取得データ長+スキップ量
ステップS1620で早送り再生キーが押されなかった場合、ステップS1622でスキップ量は0に設定されるので、取得開始アドレスは取得データ長ずつ増加する。この場合、オーディオクライアントは音楽データを連続的に取得するので、通常の再生を行う。一方、ステップS1620で早送り再生キーが押された場合、ステップS1621でスキップ量は0よりも大きい値に設定されるので、オーディオクライアントは音楽データをそのスキップ量だけ飛んで取得する。その結果、オーディオクライアントは早送り再生を行う。この例では、スキップ量が取得データ長と同じに設定されているから、2倍速の早送り再生を行う。また、たとえばスキップ量を取得データ長の2倍とすることにより、3倍速の再生を行うことができる。
【0272】
1.2.2.3.2.早戻し再生
早戻し再生の場合、オーディオクライアントは、上記ステップS1620に代えて早戻し再生キーが押されているかを判別し、上記ステップS1621に代えてスキップ量を0よりも小さく、かつ絶対値が前回の取得データ長よりも大きい値に設定する。スキップ量の絶対値が前回の取得データ長よりも小さいと、音楽データの取得範囲が重複するからである。毎回の取得データ長が一定であれば、絶対値を取得データ長の2倍にすれば、通常再生と同じ速度で戻し再生を行うことができる。
【0273】
また、オーディオクライアントは、ステップS1624で計算した取得開始アドレスが音楽データの存在する範囲内か否かを判別する(S1625)。範囲内の場合、オーディオクライアントは次のステップS1610に進むが、範囲外の場合、オーディオクライアントは再生を停止する。通常再生の場合は音楽データの終わりを検知しているので、このような終了条件を入れる必要はないが、特に早戻し再生の場合は音楽データの始まりを検知する必要があるので、このような終了条件を入れている。ただし、このような終了条件を入れずに、次の曲のファイルをオープンして早送り再生を行ったり、前の曲のファイルをオープンして早戻し再生を行うようにしてもよい。
【0274】
なお、MP3の音楽データの場合は、前述したように、フレームヘッダを読み取れば次のフレームヘッダの位置をほぼ確定することができる。したがって、ある一定分のフレームをスキップし、その後の数フレームのデータを再生し、再びフレームをスキップする、という動作を繰り返すことにより早送り再生を実現することができる。
【0275】
1.2.2.3.3.一時停止
一時停止の場合、図50を参照して、オーディオクライアントはキー入力を監視し(S1626,S1628)、一時停止キーが押された場合は動作ステータスを一時停止に設定し(S1627)、再生キーが押された場合は動作ステータスを再生に設定する(S1629)。
【0276】
バッファに空きが生じると(S1609)、オーディオクライアントは動作ステータスが一時停止か否かを判定する(S1631)。一時停止の場合、オーディオクライアントはステップS1626に戻って次の音楽データの転送を開始しない。一方、一時停止でない場合、すなわち再生キーが押されて一時停止が解除され、動作ステータスが再生に変化した場合、オーディオクライアントはステップS1610に進んで次の音楽データの転送を開始する。
【0277】
また、動作ステータスが一時停止になった場合、オーディオクライアントはバッファの読出動作を停止する。バッファには、以前に転送された音楽データが残っているからである。
【0278】
1.2.2.3.4.スロー再生
音楽ではなく、動画の場合はスロー再生を行う必要がある。通常、動画ファイルはMPEG−2のように圧縮形式であるから、オーディオクライアントはこれを再生するためにデコーダを備える。スロー再生の場合、デコーダにスロー再生を指示するコマンドが与えられると、バッファに蓄積されている映像データの減少速度が遅くなる。仮に通常再生の30%の速度でスロー再生を行うのであれば、デコーダがバッファから読み出す映像データの単位時間当たりの量は30%になる。そのため、上記ステップS1609でオーディオクライアントがバッファに空きが生じるのを待つ時間が長くなり、これによりスロー再生を実現することができる。
【0279】
1.2.3.コントローラの動作
1.2.3.1.コンテンツサーバとの接続
コントローラAkもオーディオクライアントCjとほぼ同様に、まずコンテンツサーバSiとの接続を確立する。
【0280】
図51を参照して、コントローラAkに電源が投入されると、コントローラAkは、コンテンツサーバSiのコマンドポートに接続する(S3001)。コントローラAkは、このコマンドポートを通じてクライアントインデックス要求コマンドを発行する(S3002)。コンテンツサーバSiはこのコマンドに応答してクライアントインデックスをコントローラAkに返信し、コントローラAkはその取得したクライアントインデックスを保存する(S3003)。
【0281】
続いて、コントローラAkは、コンテンツサーバSiのプッシュポートに接続する(S3004)。コントローラAkは、このプッシュポートを通じてクライアントインデックス通知コマンドを発行し、ステップS3003で保存したクライアントインデックスをコンテンツサーバに送信する(S3005)。これにより、プッシュポートが開通する(S3006)。
【0282】
続いて、コントローラAkは、クライアントタイプをコマンドポートを通じてコンテンツサーバSiに通知する(S3007)。ここでは、上記オーディオクライアントCjと異なり、コントローラAkはクライアントタイプとして自身がコントローラであることを通知する。コンテンツサーバSiは、このクライアントタイプによりオーディオクライアントCjとコントローラAkとを区別することができる。
【0283】
続いて、コントローラAkは、オーディオクライアントCjのクライアント情報をコンテンツサーバSiから取得し(S3008)、その情報に含まれるステータスなどをモニタ上に表示する。
【0284】
そして、コントローラAkは、クライアントタイプ及び取得したクライアントインデックスに基づいて、コンテンツサーバSiに接続されているオーディオクライアントCjの監視ハンドル及び制御ハンドルをコンテンツサーバSiに要求して取得する(S3009)。
【0285】
上記接続手順がオーディオクライアントCjと相違する点は、コントローラAkは、自身がコントローラであることを示すクライアントタイプをコンテンツサーバSiに通知する点である。また、もう1つの相違点は、コントローラAkが監視ハンドル及び制御ハンドルの両方又は一方を取得する点である。以下、詳述する。
【0286】
1.2.3.1.1.監視ハンドル及び制御ハンドルの取得
図52を参照して、コントローラAkは、コンテンツサーバSiに接続されている全オーディオクライアントCjのリストを表示する(S30091)。コントローラAkは、ユーザの操作に応じてリストの中から監視しようとするオーディオクライアントCjを選択する(S30092)。ユーザの操作に応じて監視しようとするオーディオクライアントCjを選択するのは本ネットワークオーディオシステムを最初に起動したときだけとし、2回目以降は、最初に選択したオーディオクライアントCjを登録しておき、その登録されたオーディオクライアントを自動的に選択するようにするのが好ましい。
【0287】
続いて、コントローラAkは、その選択されたオーディオクライアントCjのクライアントインデックスをコンテンツサーバSiに送信し、その監視ハンドルを要求する(S30093)。コンテンツサーバSiは、送信元コントローラAkのクライアントインデックスと、受信したオーディオクライアントCjのクライアントインデックスとを対応づけて記憶し(S20001)、送信元コントローラAkに対して監視ハンドルを発行する(S20002)。その結果、コントローラAkは、選択されたオーディオクライアントCjの監視ハンドルを取得する(S30094)。
【0288】
続いて、コントローラAkは、ユーザの操作に応じてリストの中から制御しようとするオーディオクライアントCjを選択する(S30095)。そして、コントローラAkは、その選択されたオーディオクライアントCjのクライアントインデックスをコンテンツサーバSiに送信し、その制御ハンドルを要求する(S30096)。コンテンツサーバSiは、送信元コントローラAkのクライアントインデックスと、受信したオーディオクライアントCjのクライアントインデックスとを対応づけて記憶し(S20003)、送信元コントローラAkに対して制御ハンドルを発行する(S20004)。その結果、コントローラAkは、選択されたオーディオクライアントCjの制御ハンドルを取得する(S30097)。
【0289】
監視ハンドルは、コンテンツサーバSiからコントローラAkに与えられるオーディオクライアントCjを監視する権限である。これにより、オーディオクライアントCjのステータスが変化すると、変化後の新しいステータスがコンテンツサーバSiに通知される。コンテンツサーバSiはプッシュポートを通じてオーディオクライアントCjのクライアント情報をコントローラAkに随時送信し、これに応じてコントローラAkはオーディオクライアントCjのクライアント情報を更新する。
【0290】
本ネットワーク型オーディオシステムでは、オーディオクライアントCjの数が多いほどLAN12に負荷がかかる。また、コントローラAkのコマンドやオーディオクライアントCjのステータスなどの伝送はLAN12上のトラフィックに影響を及ぼす。
【0291】
図53に示すように、複数のコントローラA1〜A3が同じLAN12上に存在する場合に、コンテンツサーバSiはオーディオクライアントC1〜C3のクライアント情報を全てのコントローラA1〜A3に送信するようにすることも可能であるが、このようにすると、ネットワークトラフィック及びコンテンツサーバの負荷が増大する。
【0292】
そこで図54に示すように、コントローラA1がオーディオクライアントC1のみの監視ハンドルを取得し、コントローラA2がオーディオクライアントC2のみの監視ハンドルを取得するようにし、コンテンツサーバSiは、オーディオクライアントC1のクライアント情報をコントローラA1のみに送信し、オーディオクライアントC2のクライアント情報をコントローラA2のみに送信するようにする。
【0293】
コンテンツサーバSiは、オーディオクライアントCjの監視ハンドルを取得しているコントローラAkだけにクライアント情報を送信するので、ネットワークトラフィック及びコンテンツサーバの負荷が軽減される。ただし、コントローラ3が全てのオーディオクライアントC1〜C3の監視ハンドルを取得し、コンテンツサーバSiが全てのコントローラA1〜A3にクライアント情報を送信するようにしてもよい。
【0294】
一方、制御ハンドルは、コンテンツサーバSiからコントローラAkに与えられるオーディオクライアントCjを制御する権限である。
【0295】
本ネットワーク型オーディオシステムにおいて、コントローラAkが複数存在する場合、いずれのコントローラAkもオーディオクライアントCjを制御できるようにすると、あるコントローラAkからの命令に従ってオーディオクライアントCjが曲を再生している最中に、他のコントローラAkがそのオーディオクライアントCjに再生の停止を命令したり、別の曲の再生を命令するおそれがある。
【0296】
そこで、本システムでは、オーディオクライアントCjの制御ハンドルを取得しているコントローラAkのみがそのオーディオクライアントCjを制御することができ、オーディオクライアントCjの制御ハンドルを取得していないコントローラAkはそのオーディオクライアントCjを制御することができないようにする。
【0297】
コンテンツサーバが制御ハンドルを取得できるコントローラを制限すれば、オーディオクライアントとそれを制御できるコントローラの組み合わせを設定することができる。また、コントローラが制御ハンドル開放コマンドをコンテンツサーバに発行することにより、制御ハンドルを放棄できるようにする。
【0298】
1.2.3.2.モニタ(監視)機能
コントローラAkは、上述したように監視ハンドルを取得することにより、オーディオクライアントCjを監視できるようになる。
【0299】
図55を参照して、コントローラAkはコンテンツサーバSiにクライアント情報を要求し(S31)、コンテンツサーバSiはこれに応じてクライアント情報を返信し(S27)、コントローラAkはこれを取得して記憶する(S31)。又は、コンテンツサーバSiがオーディオクライアントCjからクライアント情報を受信した場合、コンテンツサーバSiはコントローラAkにプッシュポートにてクライアント情報を送信し、コントローラAkはこれを取得して記憶する。そして、コントローラAkは取得したクライアント情報を表示する(S32)。以下、このコントローラによるモニタ機能を詳細に説明する。
【0300】
図56を参照して、コンテンツサーバSiはコントローラAkからの要求又はオーディオクライアントからのクライアント情報の受信に応じてクライアント情報を送信する(S2701)。コントローラAkはこのクライアント情報を受信すると、各情報に変更がないかを調べる。すなわち、最初にクライアントインデックスを確認し(S3101)、どのオーディオクライアントCjのクライアント情報かを記憶しておく。そして、記憶したオーディオクライアントのプロダクトID及びファームウェアIDを確認する(S3102、S3103)。
【0301】
具体的には、プロダクトIDによってオーディオクライアントの種類を判別し、ファームウェアIDによってファームウェアのバージョンを判別する。もしそのオーディオクライアントに適用されているファームウェアのバージョンが古ければ、コントローラAkはインターネット上のカスタマーサービスにアクセスし、オーディオクライアントCjにファームウェアを配信して自動的に更新する。ファームウェア更新の詳細は後述する。
【0302】
なお、コントローラAkは、受信したクライアント情報を解析してクライアントタイプを確認し、オーディオクライアントCjならそれ用の処理に分岐し、それ以外なら無視するようにする。
【0303】
続いて、コントローラAkは、接続情報に変更がないかをチェックし(S3104)、変更があればオーディオクライアントCjの接続状態の表示を変更する(S3105)。
【0304】
したがって、複数のオーディオクライアントCjに電源が入り、それらがコンテンツサーバSiに接続されているか否かをコントローラAkで常に監視することができる。
【0305】
オーディオクライアントCjが接続されていたら、コントローラAkは、ボリューム値に変更がないかをチェックし(S3106)、変更があればボリューム値の表示を変更する(S3107)。
【0306】
続いて、コントローラAkは、リスト構築キー(後述する)に変更がないかをチェックし(S3108)、変更があればリスト構築キーを用いてコンテンツサーバSiに曲リストを要求する(S3109)。コンテンツサーバSiはこの要求に応じて曲リストを返信し(S2702)、コントローラAkはこの曲リストを受信する(S3110)。
【0307】
コントローラAkは、受信した曲リストをオーディオクライアントCjが再生中の曲リストとして記憶するとともに、現在再生中の曲が曲リストの何曲目かを調べてその番号を記憶する(S3111)。
【0308】
続いて、コントローラAkは、再生中の曲に変更がないかをチェックし(S3112)、変更があれば曲のデータフォーマットを確認し(S3113)、再生中の曲名やアーティスト名の表示を変更し(S3114)、現在再生中の曲が曲リストの何曲目かを調べてその番号を記憶する(S3115)。
【0309】
最後に、コントローラAkは、ステータスに変更がないかをチェックし(S3116)、変更があればステータスの表示を変更する(S3117)。オーディオクライアントCjがリモコンにより制御される場合も、コントローラAkはそのステータスを監視して表示する。オーディオクライアントCjのステータスが完了ステータスであれば(S3118)、コントローラAkはオーディオクライアントCjにその次の曲を続けて再生するよう命令する(S3119)。連続再生の詳細は後述する。
【0310】
以上の処理は、コントローラが監視ハンドルを取得した全てのオーディオクライアントのうちいずれかのクライアント情報が変化するたびに繰り返される。
【0311】
また、図示されていないが、コントローラAkは、各オーディオクライアントCjのクライアントタイプを監視する。また、コントローラAkは、再生可能なデータフォーマットを監視し、再生可能な曲名のみを表示する。
【0312】
以上のように、コンテンツサーバがクライアントからクライアント情報を受信した際に、プッシュポートにて強制的にコントローラにクライアント情報を送信することにより、コントローラAkはオーディオクライアントCjを常に監視することができ、また、コンテンツサーバSiからコントローラCLには必要最低限の情報しか送信されない。そのため、コントローラAkにかかる処理の負担が軽減される。また、オーディオクライアントCjが複数あっても、コントローラAkはクライアントインデックスによりオーディオクライアントCjを区別し、各クライアント情報をリアルタイムで更新することができる。
【0313】
1.2.3.3.制御機能
コントローラAkは、上述したように制御ハンドルを取得することにより、オーディオクライアントCjを制御できるようになる。
【0314】
図57を参照して、コントローラAkは制御コマンドをコンテンツサーバSiに送信し(S33)、コンテンツサーバSiはこれを指定されたオーディオクライアントCjに送信する(S28)。オーディオクライアントCjはこの制御コマンドに従って動作し、そのステータスを変更し(S18)、その変更したステータスをコンテンツサーバSiに送信する(S19)。コンテンツサーバSiはこのステータスをコントローラAkに送信し(S29)、コントローラAkはこれに応じて記憶しているクライアント情報のステータスを変更する(S34)。
【0315】
1.2.3.3.1.制御コマンド処理
次に、図58を参照して、オーディオクライアントCjがコントローラAkからコンテンツサーバSiを通じて受けた制御コマンドに従って行う処理を説明する。
【0316】
オーディオクライアントCjは、プッシュポートに何らかのデータが書き込まれた場合(S3001)、そのデータを受信して解析する(S3002)。
【0317】
受信したデータが再生コマンドであれば(S3003)、オーディオクライアントCjは指定されたファイル名をコンテンツサーバSiから取得する(S3004)。オーディオクライアントCjは、取得したファイル名から、曲名、アルバム、ジャンルなどを特定する。そして、オーディオクライアントCjは曲を指定しかつその曲の音楽データを転送するようコンテンツサーバSiに指令する(S3005)。オーディオクライアントCjは転送された音楽データに基づいて再生を行う。
【0318】
受信したデータが再生停止コマンドであれば(S3006)、オーディオクライアントCjは曲データ転送要求コマンドの発行を停止することにより音楽データの転送を停止し(S3007)、停止ステータスをコンテンツサーバSiに送信する(S3008)。オーディオクライアントCjは、その他、ボリューム値セットコマンド、ポーズコマンド、AVレシーバ制御コマンド、ファームウェアアップデートコマンドなどに応答して、所定の処理を行う(S3009〜S3010)。
【0319】
1.2.3.3.2.再生制御
ここで、コントローラAkが再生コマンドに従ってオーディオクライアントCjに所望のアーティストの所望の曲を再生させる動作を説明する。
【0320】
図59を参照して、コントローラAkはオーディオクライアントCjの接続を確認し(S3011)、接続があればオーディオクライアントCjのファームウェアID及びプロダクトIDを確認する(S3012、S3013)。
【0321】
続いて、コントローラAkは、クライアントタイプに基づいてオーディオクライアントCjがオーディオクライアント又はAVRクライアントであるか否かを判別する(S3014)。ここではオーディオクライアントCjであるから、コントローラAkは所望のアーティストの曲リストを既に取得しているか否かを判別する(S3015)。未だ取得していなければ、コントローラAkはコンテンツサーバSiから所望のアーティストの曲リストを取得する(S3016)。コントローラAkは、この曲リストを表示装置に表示する。
【0322】
取得された曲リストの中にユーザが再生を希望する曲があれば(S3017)、コントローラAkは、ユーザの入力操作に応じてその曲を選択し、再生コマンドをコンテンツサーバSiに送信する(S3018)。この再生コマンドは、選択された曲のデータを格納しているファイル名と、曲を再生させようとするオーディオクライアントのクライアントインデックスとを含む。一方、希望する曲がなければ、コントローラAkは再び所望のアーティストの次の曲リストを取得する(S3016)。
【0323】
コンテンツサーバSiは、コントローラAkから送信されたクライアントインデックスに基づいてオーディオクライアントCjを特定し、そのオーディオクライアントCjに選択された曲のファイル名を送信する(S28)。
【0324】
オーディオクライアントCjは、コントローラAkからコンテンツサーバSiを通じて送信されてきた再生コマンドに応答して所望の曲を再生し、ステータスを再生ステータスに変更する(S18)。オーディオクライアントCjは再生ステータスをコンテンツサーバSiに送信し(S19)、コンテンツサーバSiはその再生ステータスをコントローラAkに送信する(S29)。コントローラAkはこれに応じてオーディオクライアントCjのステータスを再生ステータスに変更する(S34)。
【0325】
1.2.3.3.3.再生可能なフォーマットかを識別して再生
曲リストには、オーディオクライアントCjが再生可能なフォーマットか否かに関係なく、全てのフォーマットの曲が含まれる。そのため、ユーザが所望の曲を選択したときにコントローラAkがコンテンツサーバSiから取得した曲リストをそのままユーザに対して表示したとすると、次のような問題が生じる。
【0326】
すなわち、ユーザがオーディオクライアントCjが再生できないフォーマットの曲を選択した場合でも、コントローラAkはユーザが選択した曲の再生をオーディオクライアントCjに命令するので、オーディオクライアントCjでは表示は再生状態になっているのに再生音は出ない。
【0327】
そこで図60に示すように、クライアント情報のクライアントタイプに再生可能なフォーマットに関する情報を追加する。よって、クライアントタイプは、クライアントのハードウェア構成に関する情報と、オーディオクライアントが再生可能なフォーマットに関する情報とから構成される。
【0328】
ハードウェア構成に関する情報には、次のようなものがある。「オーディオクライアント(インテリジェントタイプ)」は、音楽を再生しかつリモコン信号を受信できるオーディオクライアントである。「オーディオクライアント(ノンインテリジェントタイプ)」は、音楽を再生できるが、リモコン信号を受信できないオーディオクライアントである。「コントローラ」は、コンテンツサーバを介してオーディオクライアントを監視しかつ制御できるクライアントである。「AVRクライアント」は、EIA−232ポートを持ち、AVレシーバと通信できるクライアントである。「AVRコントローラ」は、コンテンツサーバを介してAVRクライアントを制御しかつ監視できるクライアントである。再生可能なフォーマットに関する情報には、MP3、WAV、WMAなどがある。
【0329】
1つのクライアントのクライアントタイプに、複数のハードウェア構成に関する情報が含まれている場合もあり、また、複数の再生可能なフォーマットに関する情報が含まれている場合もある。
【0330】
次に、コントローラAkがユーザに対して曲リストを表示するときの処理手順を図61を参照して説明する。
【0331】
まずコントローラAkは、曲を再生させようとするオーディオクライアントCjがコンテンツサーバSiに接続されているか否かを判別する(S3501)。未接続の場合、オーディオクライアントCjは曲を再生できないので、曲リストの全ての曲を再生不可能な曲として表示するか、又は全ての曲を表示しない(S3502)。したがって、オーディオクライアントCjが再生不可能な曲をユーザが選択するのを防止することができる。
【0332】
一方、既接続の場合、以下のステップS3505〜S3507を曲リストの曲数分繰り返す(S3503,S3504,S3508)。
【0333】
すなわち、コントローラAkは、曲リスト中のn番目の曲のフォーマットがオーディオクライアントCjが再生可能なフォーマットか否かを判別する(S3505)。再生可能なフォーマットであれば、コントローラAkはその曲を再生可能な曲として表示し(S3506)、再生不可能なフォーマットであれば、再生不可能な曲として表示するか、又は表示しない(S3507)。
【0334】
たとえばオーディオクライアントC1がMP3もWAVも再生できる場合、コントローラAkは、図62に示すように、曲リスト(この例ではプレイリスト)中の全ての曲を表示する。しかし、オーディオクライアントC2がMP3は再生できるが、WAVは再生できない場合は、図63に示すように、曲リスト中のMP3の曲は通常通り表示するが、WAVの曲は淡く表示する。また、曲を淡く表示するのではなく、全く表示しないようにしてもよい。したがって、オーディオクライアントC2が再生不可能なWAVの曲をユーザが選択するのを防止することができる。
【0335】
なお、オーディオクライアントCjの接続状態やクライアントタイプに変更があった場合、コントローラAkは曲リストを表示し直し、現在のオーディオクライアントのクライアント情報をリアルタイムで表示する。
【0336】
次に、ユーザがコントローラAkを操作してオーディオクライアントCjに曲を再生させる場合のコントローラの動作を説明する。
【0337】
図64を参照して、ユーザが再生したい曲を選択すると、コントローラAkはその選択された曲のフォーマットがオーディオクライアントCjが再生可能なフォーマットか否かを判別する(S3511)。具体的には、コントローラAkは、その選択された曲のフォーマットをクライアントタイプ中の再生可能なフォーマットと比較する。
【0338】
再生可能なフォーマットであれば、コントローラAkは、その選択された曲を再生するようオーディオクライアントCjに命令する(S3512)。一方、再生不可能なフォーマットであれば、オーディオクライアントCjはその選択された曲を再生できない旨をユーザに知らせる(S3513)。
【0339】
以上のように、コントローラAkは、オーディオクライアントCjが再生できる曲がユーザにわかるように表示し、これにより、オーディオクライアントCjが再生できない曲の再生をユーザが要求しないようにすることができる。
【0340】
1.2.3.3.4.連続再生制御
ユーザがオーディオクライアントCjを操作してそのオーディオクライアントCjで曲を再生している場合は、オーディオクライアントCjは曲リストを取得しているから、その曲リスト中の曲を連続して再生することが可能である。しかし、オーディオクライアントCjがコントローラAkにより指示された曲を再生している場合は、オーディオクライアントCj自身は曲リストを取得していないから、オーディオクライアントCjが曲リスト中の曲を連続して再生するためには、コントローラAkがオーディオクライアントCjに次の曲を指示する必要がある。
【0001】
また、ネットワーク上にコントローラが1つしか存在しない場合は問題とならないが、複数存在する場合は、オーディオクライアントが正常に連続再生を行うことができないという問題が生じる。たとえばオーディオクライアントから再生の完了を通知されたコンテンツサーバが全てのコントローラに再生の完了を通知したとすると、オーディオクライアントは複数のコントローラから連続再生の命令を受けてしまうからである。この問題はネットワーク上にコンテンツサーバが複数存在する場合はさらに複雑になる。したがって、ネットワーク型オーディオシステムにおいてコントローラによる連続再生を可能にするためには、どのコントローラがクライアントに連続再生を命令するのかを管理する必要がある。
【0341】
本実施の形態では、オーディオクライアントCjは、コントローラAkからの命令に従って曲を再生し、その再生を終了したときは完了ステータスを送信するが、それ以外のとき、たとえばユーザの操作に応じてオーディオクライアントCjが自ら曲を再生し、その再生を終了したとき、又はユーザの操作に応じてオーディオクライアントCjが曲の再生を途中で停止したときなどは、完了ステータスとは異なる停止ステータスを送信する。コントローラは、完了ステータスを受信した場合に、連続再生処理すべきと判断し、曲リストの中から前に選択した曲の次の曲を選択し、オーディオクライアントに次の曲を再生するよう命令する。また、コントローラは、停止ステータスを受信した場合には、オーディオクライアントに次の曲を再生するよう命令しない。以上のように、オーディオクライントが状況に応じて完了ステータスと停止ステータスとを区別して送信することにより、コントローラは受信したステータスに基づいて、オーディオクライアントに次の曲の再生を命令すべきか否かを判断することができる。
【0342】
したがって、オーディオクライアントCjがユーザの操作に応じて曲の再生を途中で停止した場合又はオーディオクライアントCjが自ら曲を選択し、その再生を終了した場合には、停止ステータスをコンテンツサーバに送信するので、コントローラが誤ってオーディオクライアントに次の曲を再生するよう命令することを防止できる。
【0343】
さらにコントローラが複数ある場合には、オーディオクライアントから完了ステータスを受信したコンテンツサーバは、各コントローラに対して、完了ステータスと停止ステータスとを区別して送信する。すなわち、図65を参照して、コントローラA1がオーディオクライアントC1に再生を命令する場合、コントローラA1はまずコンテンツサーバSiにオーディオクライアントC1に対する再生コマンドを送信する。コンテンツサーバSiはコントローラA1から再生コマンドを受信し、これをオーディオクライアントC1に送信する。オーディオクライアントC1はコンテンツサーバSiから再生コマンドを受信し、曲の再生を開始する。
【0344】
図66及び図67を参照して、オーディオクライアントC1が曲の再生を終了すると、完了ステータスをコンテンツサーバに送信し(S1901)、コンテンツサーバSiはこれを受信する(S2901)。続いて、コンテンツサーバSiは、以下のステップS2903〜S2906をクライアント数だけ繰り返す(S2902,S2907)。
【0345】
コンテンツサーバSiは、クライアントインデックスnに基づいてn番目のクライアントがオーディオクライアントC1の監視ハンドルを取得しているコントローラか否かを判別する(S2903)。
【0346】
監視ハンドルを取得しているコントローラの場合、コンテンツサーバSiは、n番目のクライアント(コントローラ)がオーディオクライアントC1に再生を命令したコントローラA1か否かを判別する(S2904)。
【0347】
オーディオクライアントC1に再生を命令したコントローラA1の場合、コンテンツサーバSiは、オーディオクライアントC1から受信した完了ステータスをコントローラA1に送信し(S2905)、コントローラA1はこれを受信する(S3401)。一方、オーディオクライアントC1に再生を命令したコントローラA1以外のコントローラA2の場合、コンテンツサーバSiは、オーディオクライアントC1から受信した完了ステータスに代えて、停止ステータスをコントローラA2に送信し(S2906)、コントローラA2はこれを受信する(S3402)。
【0348】
図68を参照して、完了ステータスを受信したコントローラA1は、曲リストの中から前に選択した曲の次の曲を選択し、その曲をオーディオクライアントC1に再生させるための再生コマンドをコンテンツサーバSiに送信する(S3403)。コンテンツサーバSiはこれを受信し、オーディオクライアントC1に送信する。オーディオクライアントC1は、コンテンツサーバSiから送信された再生コマンドに従って次の曲を再生する。
【0349】
一方、停止ステータスを受信したコントローラA2は、オーディオクライアントC1は停止状態にあると判断し、コントローラA1のような連続再生処理を行わない。
【0350】
オーディオクライアントCjは、ステータスが再生になると再生ステータスをコンテンツサーバSiに送信し、ステータスが一時停止になるとポーズステータスをコンテンツサーバSiに送信し、自らが指定した曲の再生が終了すると停止ステータスをコンテンツサーバSiに送信するが、上述したように、コントローラAkが指定した曲の再生が終了すると完了ステータスをコンテンツサーバSiに送信する。
【0351】
以上のように、オーディオクライアントCjが曲の再生を終了したときにコンテンツサーバSiがコントローラAkに送信するステータスを停止ステータスと完了ステータスとに区別することにより、コントローラAkは自ら再生を命令したオーディオクライアントCjが曲の再生を終了したのか否かを判断することができる。その結果、コントローラAkはオーディオクライアントCjに連続再生を命令する必要があるのか、オーディオクライアントCjの停止ステータスを表示するだけでいいのかを判断することができる。
【0352】
なお、オーディオクライアントCjが曲の再生を終了したとき、専用リモコンからの命令に従って曲を再生していた場合と、監視ハンドル及び制御ハンドルの両方を取得しているコントローラAkからの命令に従って曲を再生していた場合とで、コンテンツサーバSiに通知するステータスを区別するようにしてもよい。制御ハンドルしか取得していない専用リモコンはコンテンツサーバSiからステータスを受信することができないから、連続再生処理を行うことができないからである。
【0353】
1.2.3.3.5.リスト構築キーを用いた連続再生制御
コントローラAkは、コンテンツサーバSiからさまざまな曲リストを取得してその中から曲を選択し、その曲をオーディオクライアントCjに再生させる。そして、コントローラAkは、オーディオクライアントCjのステータスを監視し、オーディオクライアントCjが選択された曲の再生を終了すると、取得している曲リストの中から次の曲を選択し、その曲をオーディオクライアントCjに再生させる。コントローラAkはこのようにしてオーディオクライアントCjに連続的に曲を再生させているが、次の曲の再生を命令するためには曲リストを記憶しておく必要がある。そのため、曲の再生を命令しているコントローラAkの電源は曲の再生中に切ることができない。
【0354】
そこで、オーディオクライアントCjに再生を命令したコントローラAkの電源を途中で切っても、コントローラAkがオーディオクライアントCjに連続再生を命令できるように、以下のような方法を採用する。
【0355】
ユーザがコンテンツ情報データベースの中から再生したい曲を選択するときには、あるアーティストの曲リストから選択したり、あるジャンルの曲リストから選択するなど、さまざまな曲リストを利用する。そこで、コンテンツ情報データベースから一意に曲リストを作成することができるように、リスト構築キーを定義する。そして、このリスト構築キーを、オーディオクライアントCjが再生中の曲リストを特定するための情報としてクライアント情報に付加する。
【0356】
図69を参照して、リスト構築キーは「フィルタの種類」と「キーワード」とから構成される。フィルタの種類は、コンテンツ情報データベース中のどのカテゴリに注目して曲リストを作成するかを指定するもので、図70に示すようなものがある。フィルタの種類が"TITLE="、"GENRE="、"ARTIST="、"ALBUM="、又は"FILENAME="であれば、コンテンツ情報データベースの中から、曲名、ジャンル名、アーティスト名、アルバム名、又はファイル名がキーワードと一致する曲を探し出して曲リストを作成する。フィルタの種類が"PLAYLIST="であれば、プレイリストのファイル名がキーワードと一致するプレイリストに登録されている曲をコンテンツ情報データベースから探し出して曲リストを作成する。
【0357】
たとえば、アーティスト名"xxxx"の曲リストの場合、フィルタの種類は"ARTIST="、キーワードは"xxxx"となるから、リスト構築キーは"ARTIST=xxxx"となる。また、キーワードとして"*"(アスタリスク)を指定すると、そのフィルタの種類に対して使用できるキーワードのリストが作成される。たとえばリスト構築キー"ARTIST=*"から作成されるリストは、コンテンツ情報データベースに登録されている曲のアーティスト名のリストが作成される。
【0358】
以下にコントローラが指定した曲の再生が終了したオーディオクライアントに対して、コントローラが連続再生処理を行う手順について説明する。
【0359】
図71を参照して、コントローラAkから再生するよう命令されたオーディオクライアントCjが曲の再生を終了すると、完了ステータスをコンテンツサーバSiに送信する。コンテンツサーバSiは、オーディオクライアントCjのステータスが変化したので、完了ステータス、再生していた曲のファイル名、リスト構築キーなどを含むクライアント情報をコントローラAkに送信する。
【0360】
コントローラAkはクライアント情報を受信すると、図56に示したクライアント情報表示処理を開始する。この処理は既に説明したので、ここでは主としてリスト構築キーを用いた連続再生制御に関する部分を説明する。
【0361】
コントローラAkは、リスト構築キーに変更がないかチェックし(S3108)、変更があった場合はリスト構築キーを用いてオーディオクライアントCjが再生中の曲リストをコンテンツサーバSiから取得する(S3110)。詳細には、受信したリスト構築キーをコンテンツサーバに送信し、コンテンツサーバはこのリスト構築キーに基づいてリストを作成し、コントローラに送信する。電源が切られ、コントローラAkがオーディオクライアントCjが再生中の曲リストを記憶していない場合も、コンテンツサーバと接続した後に取得するリスト構築キーを用いて再生中の曲リストをコンテンツサーバSiから取得する。
【0362】
ここでは、ステータスが完了ステータスに変化しているから、コントローラAkは完了処理を行う(S3119)。すなわち、コントローラAkは、オーディオクライアントCjが再生を終了した曲の次の曲を曲リストから選択し、その選択した曲を再生するようオーディオクライアントCjに命令する。
【0363】
図72を参照して、完了処理の詳細を説明する。コントローラAkは、図56中のステップS3111で記憶した再生曲番号nをインクリメントし(S31191)、次に再生すべき曲を指定する。続いて、コントローラAkは、再生曲番号nが曲リストの曲数以下か否かを判別する(S31192)。再生曲番号nが曲リストの曲数を超えていれば、コントローラAkは、オーディオクライアントCjが曲リストの最後まで再生したと判断して再生曲番号nを1に設定し(S31193)、次に再生すべき曲を曲リストの最初の曲に戻す。
【0364】
再生曲番号nが曲リストの曲数以下であれば、コントローラAkは、n番目の曲がオーディオクライアントCjで再生可能なフォーマットか否かをチェックし(S31194)、再生可能なフォーマットであれば、曲リストのn番目の曲を再生するようオーディオクライアントCjに命令する(S31195)。再生不可能なフォーマットであれば、さらに次の曲を再生するために再帰的にこの完了処理を行う。要するに、コントローラAkは、オーディオクライアントCjが再生不可能なフォーマットの曲を飛ばし、その次の曲を再生するようオーディオクライアントCjに命令する。
【0365】
以上のように、オーディオクライアントCjに曲を再生するよう命令した後にコントローラAkの電源を切ると、コントローラAkはオーディオクライアントCjに再生を命令したときの曲リストを消失してしまう。しかし、電源を再投入し、コンテンツサーバとの接続が完了すると、図51のS3008にて説明した通り、コントローラAkはコンテンツサーバSiからオーディオクライアントCjのクライアント情報を取得する。このクライアント情報にはリスト構築キーが含まれているから、コントローラAkはこのリスト構築キーに基づいてクライアントCLが再生中の曲リストを再び取得することができる。したがって、コントローラAkがオーディオクライアントCjに曲を再生するよう命令した後にその電源が切られた場合であっても、オーディオクライアントCjが曲の再生を終了し、完了ステータスを送信し、この完了ステータスをコントローラAkが受信したときには、取得し直した曲リストに従ってその次の曲を再生するようオーディオクライアントCjに命じることができる。
【0366】
なお、オーディオクライアントCjの再生動作を停止させるためには、コントローラAkは停止コマンドをコンテンツサーバSiを通じてオーディオクライアントCjに送信すればよい。この場合、停止ステータスがオーディオクライアントCjからコンテンツサーバSiを通じてコントローラAkに返信される。また、オーディオクライアントCjの再生動作を一時停止させるためには、コントローラAkは一時停止コマンドをコンテンツサーバSiを通じてオーディオクライアントCjに送信すればよい。この場合、ポーズステータスがオーディオクライアントCjからコンテンツサーバSiを通じてコントローラAkに返信される。
【0367】
1.2.3.3.6.優先順位を付けた連続再生制御
本実施の形態をコンテンツサーバS1及びオーディオクライアントC1に着目して説明する。本実施の形態では、コンテンツサーバS1のHDD14にコントローラ管理テーブルが格納されている。コントローラ管理テーブルの一例を次の表1に示す。コントローラ管理テーブルには、オーディオクライアントC1を制御する優先順位と、コントローラA1〜Akに付与されたコントローラインデックスとが対応づけて記録される。
【表1】
Figure 0004013949
【0368】
本実施の形態では、コンテンツサーバS1〜Si、オーディオクライアントC1〜Cj及びコントローラA1〜Akには、図73に示したステップを実行するためのコンピュータプログラムがそれぞれインストールされている。以下、本実施の形態によるネットワーク型オーディオシステム10の動作を図73に示したフロー図を参照して説明する。
【0369】
最初に、コントローラA1がコンテンツサーバS1に接続を要求し、コンテンツサーバS1がこの要求を受け入れると、コントローラA1とコンテンツサーバS1との間で接続が確立する(S30301)。
【0370】
コントローラA1に続いて、コントローラA2がコンテンツサーバS1に接続を要求し、コンテンツサーバS1がこの要求を受け入れると、コントローラA2とコンテンツサーバS1との間で接続が確立する(S30401)。
【0371】
これに対し、コンテンツサーバS1は、コントローラ管理テーブルに、優先順位「第1位」に対応づけてコントローラA1のコントローラインデックスを記録し、さらに優先順位「第2位」に対応づけてコントローラA2のコントローラインデックスを記録する(S20101)。その結果、上記表1に示したコントローラ管理テーブルが得られる。このコントローラ管理テーブルによれば、コントローラA1が最優先で連続再生処理の権限を有し、その次にコントローラA2が連続再生処理の権限を有する。
【0372】
以下、コントローラA1がコンテンツサーバS1経由でオーディオクライアントC1に複数曲の連続再生を命令する場合の動作を説明する。
【0373】
コントローラA1は、連続再生の対象となる曲リストをコンテンツサーバS1に要求する(S30302)。具体的には、曲リストを作成するために必要なリスト構築キーをコンテンツサーバS1に送信する。
【0374】
ユーザは、コンテンツサーバS1の中から再生したい曲を選択するとき、あるアーティストの曲リストから選択したり、あるジャンルの曲リストから選択したりするなど、さまざまな曲リストを利用する。リスト構築キーは、このような曲リストをコンテンツサーバS1の中から抽出して一意に作成するための検索キーでる。リスト構築キーは図69に示したように、フィルタの種類及びキーワードという2つのパラメータから構成される。
【0375】
フィルタの種類は、曲リストに入れるべき曲のカテゴリを指定するもので、具体的には図70に示したとおりである。
【0376】
コンテンツサーバS1は、コントローラA1から送信されたリスト構築キーに基づいて曲リストを作成し、コントローラA1に送信する(S20102)。具体的には、フィルタの種類が"TITLE="、"GENRE="、"ARTIST="、"ALBUM="、又は"FILENAME="であれば、曲名、ジャンル名、アーティスト名、アルバム名、又はファイル名がキーワードと一致する1又は2以上の曲を探し出し、その曲を列挙した曲リストを作成する。フィルタの種類が"PLAYLIST="であれば、プレイリストのファイル名がキーワードと一致するプレイリストに登録されている曲を探し出し、その曲を列挙した曲リスト(プレイリスト)を作成する。また、コンテンツサーバS1は、オーディオクライアントC1のクライアント情報の1つとして、リスト構築キーをクライアントインデックス(オーディオクライアントC1の識別情報)に対応づけて登録する。
【0377】
コントローラA1は、取得した曲リストの中からユーザの操作に応じて指定された曲の再生をコンテンツサーバS1経由でオーディオクライアントC1に命令する(S30303)。オーディオクライアントC1は、コントローラA1からの再生命令に応じて、指定された曲の音楽コンテンツをコンテンツサーバS1に要求する(S10201)。コンテンツサーバS1は、オーディオクライアントC1から要求された音楽コンテンツをオーディオクライアントC1に配信する(S20103)。オーディオクライアントC1は、コンテンツサーバS1から送信された音楽コンテンツに基づいて曲の再生を開始する(S10202)。
【0378】
オーディオクライアントC1は指定された曲を最後まで再生し終えると、その旨を示す完了ステータスをコンテンツサーバS1に送信する(S10203)。コンテンツサーバS1はオーディオクライアントC1から完了ステータスを受信すると、図74に示すように、コントローラ管理テーブル104を参照し、最高順位のコントローラA1に完了ステータスをそのまま転送し、それよりも下位のコントローラA2に完了ステータスと異なる停止ステータスを送信する(S20104)。
【0379】
コントローラA1は、図74に示すように、曲リストに従って次の曲を連続して再生するようにコンテンツサーバS1経由でオーディオクライアントC1に命令する(S30304)。オーディオクライアントC1は、コントローラA1からの連続再生命令に応じてその次の曲を再生する。以後、オーディオクライアントC1は上記ステップS201以降の動作を繰り返す。他方、コントローラA2は、コンテンツサーバS1から停止ステータスを受信しても特に能動的なアクションを起こさず、単にオーディオクライアントC1の状態を監視する。
【0380】
なお、コントローラA1〜AkがコンテンツサーバS1から切断されると、コンテンツサーバS1はコントローラ管理テーブル104を更新する。具体的には、コンテンツサーバS1から切断されたコントローラのコントローラインデックスを削除し、それよりも下位のコントローラインデックスの優先順位を順次繰り上げる。たとえば図75に示すように、優先順位が最高のコントローラA1がコンテンツサーバS1から切断されたときは、その次の優先順位のコントローラA2が繰り上がり、コントローラA1に代わって連続再生処理の権限を獲得する。
【0381】
また、上述した例ではコントローラA1が最初に再生を命令し、再び同じコントローラA1が連続再生を命令しているが、コントローラA2が最初に再生を命令した場合であってもコントローラA1の優先順位が最高である限りコントローラA1が連続再生を命令する。この場合、コントローラA1はコンテンツサーバS1から完了ステータスを受信しても曲リストを有していないので、コンテンツサーバS1に登録されているオーディオクライアントC1のリスト構築キーを利用してコンテンツサーバS1から曲リストを取得し、これに従って次の曲を指定する。
【0382】
また、曲リストに含まれる全ての曲が1つのコンテンツサーバS1に蓄積されているとは限らず、複数のコンテンツサーバS1,Siに分散して蓄積されている場合もある。この場合、オーディオクライアントC1はコンテンツサーバS1の曲を再生した後、引き続き別のコンテンツサーバSiの曲を再生する必要がある。そのため、コンテンツサーバS1の曲を再生し終えたオーディオクライアントC1はコンテンツサーバS1との接続を一旦解除し、コンテンツサーバSiに接続し直すというサーバ切換処理を行う。
【0383】
コンテンツサーバSiに接続し直したオーディオクライアントC1は、コントローラA1からの再生命令に応じて、指定された曲の音楽コンテンツをコンテンツサーバSiに要求し、コンテンツサーバSiは要求された音楽コンテンツをオーディオクライアントC1に配信する。
【0384】
オーディオクライアントC1はその曲を再生し終えると、完了ステータスをコンテンツサーバSiに送信する。コンテンツサーバSiは完了ステータスを受信すると、その内部にあるコントローラ管理テーブルを参照し、最高順位のコントローラに完了ステータスを転送し、それよりも下位のコントローラに停止ステータスを送信する。
【0385】
ここで、コンテンツサーバSiにあるコントローラ管理テーブルはコンテンツサーバS1にあるコントローラ管理テーブルと同じであっても異なっていてもよい。複数のコンテンツサーバが同じコントローラ管理テーブルを使用するためには、たとえばあるコンテンツサーバがコントローラ管理テーブルの優先順位を決定し、そのコントローラ管理テーブルを他のコンテンツサーバに転送するようにすればよい。一方、複数のコンテンツサーバが異なるコントローラ管理テーブルを使用するためには、たとえば各コンテンツサーバが独自にコントローラ管理テーブルの優先順位を決定するようにすればよい。
【0386】
以上のように本実施の形態によれば、コンテンツサーバS1がオーディオクライアントC1から完了ステータスを受信したとき、コントローラ管理テーブルを参照し、最優先のコントローラA1にのみ完了ステータスを送信し、他のコントローラA2には停止ステータスを送信しているため、最優先のコントローラA1のみが連続再生を命令し、他のコントローラA2が連続再生を命令することはない。したがって、連続再生命令の競合を排除し、正常に連続再生処理を実行することができる。
【0387】
上記実施の形態では優先順位はコンテンツサーバS1との接続順で決定されているが、これに限定されることなく、たとえばオーディオクライアントC1に命令を出した順で決定されてもよい。また、コンテンツサーバは複数ある必要はなく、少なくとも1つあればよい。オーディオクライアントも複数ある必要はなく、少なくとも1つあればよい。
【0388】
1.2.3.3.7.制御ハンドルを利用した連続再生制御
本実施の形態では、図76に示したステップを実行するためのコンピュータプログラムがコンテンツサーバS1〜Si、オーディオクライアントC1〜Cj及びコントローラA1〜Akにそれぞれインストールされている。本実施の形態も上記実施の形態と同様に、複数のコントローラA1〜Akを備えたネットワーク型オーディオシステムに適用可能で、コンテンツサーバ又はオーディオクライアントは少なくとも1つあればよい。
【0389】
上記実施の形態と異なり本実施の形態では、コントローラA1〜Akに制御ハンドル管理テーブルが格納されている。制御ハンドル管理テーブルの一例を次の表2に示す。制御ハンドル管理テーブルには、オーディオクライアントC1〜Cjのクライアントインデックスと、オーディオクライアントC1〜Cjの制御ハンドルを取得しているコントローラA1〜Akのコントローラインデックスとが対応づけて記録される。制御ハンドルは、オーディオクライアントを制御する権限を示すものである。表2の例では、オーディオクライアントC1の制御ハンドルはコントローラA1により取得されているが、オーディオクライアントC2及びCjの制御ハンドルはいずれのコントローラにも取得されていない。
【表2】
Figure 0004013949
【0390】
以下、コンテンツサーバS1、オーディオクライアントC1及びコントローラA1に着目し、図76に示したフロー図を参照して本実施の形態の動作を説明する。なお、図76では上記第1の実施の形態で詳述した曲リストの取得ステップ(図73中のS30302,S20102)は割愛されている。
【0391】
コントローラA1は、オーディオクライアントC1に再生を命令する前に、オーディオクライアントC1を制御するために必要な制御ハンドルを取得する。具体的には、コントローラA1は制御ハンドル管理テーブルを参照し、オーディオクライアントC1の制御ハンドルがロックされているか否かを判断する(S30311)。
【0392】
オーディオクライアントC1の制御ハンドルが既に他のコントローラA2〜Akのいずれかに取得されている場合、表に示した制御ハンドル管理テーブルにおいて、オーディオクライアントC1のクライアントインデックスに対応して当該コントローラのコントローラインデックスが記録されている。このように制御ハンドルが既に取得されている状態を「制御ハンドルがロックされている」という。他方、オーディオクライアントC1の制御ハンドルが未だ他のコントローラA2〜Akのいずれにも取得されていない場合、オーディオクライアントC1のクライアントインデックスに対応していずれのコントローラインデックスも記録されていない。このように制御ハンドルが未だ取得されていない状態を「制御ハンドルがロックされていない(アンロックされている)」という。たとえば表に示した制御ハンドル管理テーブルでは、オーディオクライアントC2の制御ハンドルはロックされていない。
【0393】
オーディオクライアントC1の制御ハンドルがロックされている場合、コントローラA1は制御ハンドルの取得に失敗する。他方、ロックされていない場合、コントローラA1はコンテンツサーバS1に制御ハンドルの取得を要求する(S30312)。この要求に応じて、コンテンツサーバS1はコントローラA1に制御ハンドルの取得を許可する(S20111)。これにより、コントローラA1は制御ハンドルを取得し、さらにこの制御ハンドルを他のコントローラA2〜Akに取得されないようにロックする(S30313)。具体的には、コントローラA1は制御ハンドル管理テーブルを更新し、これによりオーディオクライアントC1のクライアントインデックスに対応づけてコントローラA1のコントローラインデックスを記録する。コンテンツサーバS1は他のコントローラA2〜Akの制御ハンドル管理テーブルもこれに同期するよう更新する。
【0394】
制御ハンドルを取得したコントローラA1は、曲リストの中からユーザの操作に応じて指定された曲の再生をコンテンツサーバS1経由でオーディオクライアントC1に命令する(S30314)。コンテンツサーバS1はこの再生命令をオーディオクライアントC1に転送する(S20112)。オーディオクライアントC1はこの再生命令に応じて指定された曲の再生を開始する(S10211)。
【0395】
オーディクライアントC1はその曲を最後まで再生し終えると、図77に示すように、完了ステータスをコンテンツサーバS1に送信する(S10212)。コンテンツサーバS1はこの完了ステータスを全てのコントローラA1〜Akに転送する(S20113)。
【0396】
コントローラA1は、自身が制御ハンドルを取得しているオーディオクライアントC1からの完了ステータスか否かを判断し(S30315)、そうであれば連続再生処理を実行し(S30316)、そうでなければ完了ステータスを無視し、単にオーディオクライアントC1の状態を監視する。本例では、コントローラA1はオーディオクライアントC1の制御ハンドルを取得しているから連続再生処理を実行し(S30316)、曲リストに従って次の曲の再生を命令する(S30314)。
【0397】
一方、オーディオクライアントC1は、曲を最後まで再生することなく、曲の途中で再生を停止した場合、停止ステータスをコンテンツサーバS1に送信する(S10213)。コンテンツサーバS1はこの停止ステータスを全てのコントローラA1〜Akに転送する(S20114)。
【0398】
コントローラA1は、自身が制御ハンドルを取得しているオーディオクライアントC1からの停止ステータスか否かを判断し(S30317)、そうであればオーディオクライアントC1の制御ハンドルを解除(アンロック)し(S30318)、そうでなければ停止ステータスを無視する。
【0399】
コントローラA1は上記のように自身が制御ハンドルを取得しているオーディオクライアントC1から停止ステータスを受信した場合のほか、コンテンツサーバS1から切断された場合にもその取得している制御ハンドルを解除する。オーディオクライアントC1の制御ハンドルが解除されると、コントローラA1〜Akのいずれもこの制御ハンドルの取得が可能となる。
【0400】
なお、曲リストに含まれる曲が複数のコンテンツサーバS1,Siに分散して蓄積されている場合、上記第1の実施の形態と同様に、オーディオクライアントC1は図77に示すようにコンテンツサーバS1から別のコンテンツサーバSiに接続を切り換えることになる。コンテンツサーバSiはオーディオクライアントC1から完了ステータスを受信しても、オーディオクライアントC1がどのコントローラA1〜Akから命令された曲を再生し終えたのか不明である。したがって、この場合もコンテンツサーバSiは全てのコントローラA1〜Akに完了ステータスを転送するが、コントローラA1〜Akは制御ハンドル管理テーブルを有しているため、自身が制御ハンドルを取得しているオーディオクライアントからの完了ステータスを受信したときのみ連続再生処理を実行する。本例では、コントローラA1がオーディオクライアントC1の制御ハンドルを取得しているから、このコントローラA1のみが連続再生処理を実行する。
【0401】
以上のように本実施の形態によれば、コントローラA1〜Akの各々が制御ハンドル管理テーブルを有しているため、オーディオクライアントC1から送信された完了ステータスをコンテンツサーバS1が全てのコントローラA1〜Akに転送しても、コントローラA1〜Akの各々は制御ハンドルを取得しているオーディオクライアントからの完了ステータスを受信したときのみ連続再生処理を実行する。したがって、連続再生命令の競合を排除し、正常に連続再生処理を実行することができる。
【0402】
なお、本実施の形態では制御ハンドル管理テーブルはコントローラA1〜Akに格納されているが、コンテンツサーバS1〜Siに格納されていてもよい。
【0403】
また、制御ハンドルをロックするのではなく、最後に命令したコントローラが制御ハンドルを取得できるようにしても構わない。すなわち、あるコントローラA1があるクライアントC1の制御ハンドルを取得している際に、別のコントローラA2がクライアントC1に再生を命令した場合、コントローラA2が制御ハンドルを取得し、コントローラA1は制御ハンドルを失うようにしてもよい。
【0404】
1.2.3.3.8.コンテンツサーバによる連続再生制御
最初に、コンテンツサーバ、オーディオクライアント及びコントローラをそれぞれ1つずつ備えた単純な例を図78を参照して説明する。
【0405】
上記実施の形態と同様に、コントローラA1は曲の再生をコンテンツサーバS1経由でオーディオクライアントC1に命令する。オーディオクライアントC1はこの命令に応じてその曲の音楽コンテンツをコンテンツサーバS1に要求し、コンテンツサーバS1はこの要求に応じてその音楽コンテンツをオーディオクライアントC1に配信する。オーディオクライアントC1は配信された音楽コンテンツに基づいて曲の再生を開始し、その曲を最後まで再生し終えると完了ステータスをコンテンツサーバS1に送信する。コンテンツサーバS1はこの完了ステータスを受信すると、上記実施の形態と異なり、次の曲の連続再生をオーディオクライアントC1に自ら命令するとともに、停止ステータスをコントローラA1に送信する。
【0406】
以下、この詳細を図79に示したフロー図を参照して説明する。本実施の形態では図79に示したステップを実行するためのコンピュータプログラムがコンテンツサーバS1、オーディオクライアントC1及びコントローラA1にそれぞれインストールされている。図79中のステップS0323,S10221,S20123〜S21125が図73に示した実施の形態と異なるので、ここではこれらを中心に説明する。
【0407】
コントローラA1は上記実施の形態と同様に曲の再生をオーディオクライアントC1に命令するが、上記実施の形態と異なり、さらにステップS30302で曲リストを取得するために用いたリスト構築キーをオーディオクライアントC1に送信する(S30323)。
【0408】
オーディオクライアントC1は上記第1の実施の形態と同様に指定された曲の音楽コンテンツをコンテンツサーバS1に要求し、コントローラA1から送信されたリスト構築キーをコンテンツサーバS1に転送する(S10221)。
【0409】
コンテンツサーバS1は上記実施の形態と同様に指定された曲の音楽コンテンツをオーディオクライアントC1に配信するが、上記実施の形態と異なり、オーディオクライアントC1から転送されたリスト構築キーに基づいて曲リストを作成する(S20123)。リスト構築キー及び曲リストは、クライアント情報として、オーディオクライアントC1のクライアントインデックスに対応づけて記録される。これによりコンテンツサーバS1は、オーディオクライアントC1がコントローラA1からの命令に応じて再生している曲リストを把握していることになる。
【0410】
音楽の再生終了後、オーディオクライアントC1から完了ステータスを受信したコンテンツサーバS1は、上記実施の形態と異なり、停止ステータスをコントローラA1に送信する(S20124)。そして、コンテンツサーバS1はステップS20123で作成した曲リストに従って次の曲の再生をオーディオクライアントC1に命令する(S20125)。
【0411】
以上のように本実施の形態によれば、コンテンツサーバS1自らが連続再生を命令するため、コントローラからの連続再生命令が競合することはなく、正常に連続再生処理を実行することができる。
【0412】
上記の例はオーディオクライアントが1つしかないが、2つ以上あってもよい。たとえば図80に示した例では、オーディオクライアントC1及びC2がコンテンツサーバS1に接続されている。上記ステップS123と同様に、コンテンツサーバS1は、オーディオクライアントC1及びC2が再生中のリスト構築キー及び曲リストをそれぞれ記憶している。完了ステータスがオーディオクライアントC1からコンテンツサーバS1に送信されると、コンテンツサーバS1は記憶したオーディオクライアントC1の曲リストに従ってオーディオクライアントC1に連続再生を命令し、コントローラA1に停止ステータスを送信する。また、完了ステータスがオーディオクライアントC2からコンテンツサーバS1に送信されると、コンテンツサーバS1は記憶したオーディオクライアントC2の曲リストに従ってオーディオクライアントC2に連続再生を命令し、コントローラA1に停止ステータスを送信する。このようにコンテンツサーバS1はオーディオクライアントC1及びC2を区別して連続再生を命令しているから、連続再生命令が競合することはない。
【0413】
また、オーディオクライアントだけでなく、コンテンツサーバも2つ以上あってもよい。たとえば図81に示した例では、オーディオクライアントC1及びC2がコンテンツサーバS1に接続され、オーディオクライアントC3がコンテンツサーバS2に接続されている。この場合も、各クライアントに接続されているコンテンツサーバは1つであるから、オーディオクライアントは接続されているコンテンツサーバにのみ完了ステータスを送信する。上記と同様に、コンテンツサーバS1はオーディオクライアントC1から完了ステータスを受信するとオーディオクライアントC1に連続再生を命令し、オーディオクライアントC2から完了ステータスを受信するとオーディオクライアントC2に連続再生を命令する。さらにこの場合、コンテンツサーバS2はオーディオクライアントC3から完了ステータスを受信するとオーディオクライアントC3に連続再生を命令する。したがってこの場合も、オーディオクライアントに連続再生を命令するコンテンツサーバはネットワーク上で唯一でとなるから、連続再生命令が競合することはない。
【0414】
また、図81に示した場合において、コントローラA1がコンテンツサーバS2に蓄積されている曲の再生をコンテンツサーバS1経由でオーディオクライアントC2に命令したとき、図82に示すようにオーディオクライアントC2はコンテンツサーバS1との接続を一旦解除し、コンテンツサーバS2に接続し直す。このとき、コンテンツサーバS2は、オーディオクライアントC2から送信されたリスト構築キーに基づいて曲リストを作成し、オーディオクライアントC2のクライアント情報としてこのリスト構築キー及び曲リストを記憶する。オーディオクライアントC2はコンテンツサーバS2から配信された曲の再生を終えると、コンテンツサーバS2に完了ステータスを送信する。コンテンツサーバS2はこの完了ステータスに応じてオーディオクライアントC2に連続再生を命令するとともに、停止ステータスをコントローラA1に送信する。したがってこの場合も、オーディオクライアントに連続再生を命令するコンテンツサーバはネットワーク上で唯一でとなるから、連続再生命令が競合することはない。
【0415】
また、オーディオクライアント及びコンテンツサーバだけでなく、コントローラも2つ以上あってもよい。たとえば図83に示した例ではコントローラA1及びA2がある。コンテンツサーバS1はオーディオクライアントC1又はC2から完了ステータスを受信したとき、コントローラA1だけでなくコントローラA2にも停止ステータスを送信する。コンテンツサーバS2もまたオーディオクライアントC3から完了ステータスを受信したとき、コントローラA1だけでなくコントローラA2にも停止ステータスを送信する。このようにコントローラA1及びA2は連続再生を命令する機能を有さず、単にオーディオクライアントC1〜C3の状態を監視する機能を有するだけであるから、何ら連続再生処理に影響を与えない。
【0416】
1.2.3.3.9.オーディオクライアント自身による連続再生制御
本実施の形態では、図84に示したステップを実行するためのコンピュータプログラムがコンテンツサーバS1〜Si、オーディオクライアントC1〜Cj及びコントローラA1〜Akにそれぞれインストールされている。図84中のステップS10233〜S10235が図79に示した実施の形態と異なるので、ここではこれらを中心に説明する。
【0417】
図79に示した実施の形態と同様に、コントローラA1は指定された曲の再生をオーディオクライアントC1に命令するとともに、リスト構築キーをオーディオクライアントC1に送信し(S30323)、オーディオクライアントC1は指定された曲をコンテンツサーバS1に要求し、さらにこの要求に応じてコンテンツサーバS1から配信された曲の再生を開始する(S10202)。このとき、オーディオクライアントC1はコントローラA1から送信されたリスト構築キーを記憶しておく。
【0418】
続いて、オーディオクライアントC1は記憶したリスト構築キーをコンテンツサーバS1に送信し、コントローラA1で選曲に使用した曲リストと同じ曲リストをコンテンツサーバS1に要求する(S10233)。コンテンツサーバS1は受信したリスト構築キーに基づいて曲リストを作成し、オーディオクライアントC1に送信する(S20133)。オーディオクライアントC1は受信した曲リストを記憶するとともに、その曲リストの中から現在再生中の曲を特定する(S10234)。
【0419】
オーディオクライアントC1はその曲を最後まで再生し終えると、記憶した曲リストに従って次の曲を再生する(S10235)。
【0420】
なお、曲リストに含まれる曲が複数のコンテンツサーバに分散して蓄積されている場合、オーディオクライアントC1は上記と同様にサーバ切換処理を行う。
【0421】
以上のように本実施の形態によれば、オーディオクライアントC1自身がリスト構築キーを保持し、それを利用して曲リストを取得しているため、自ら連続再生処理を実行することができる。したがって、オーディオクライアントC1がコントローラA1やコンテンツサーバS1から連続再生命令を受けることはなく、連続再生命令が競合することはない。
【0422】
本実施の形態でオーディオクライアントC1がリスト構築キーを利用して曲リストを取得しているのは曲の再生中であるが、曲の再生終了後であってもよい。また、オーディオクライアントC1は取得した曲リストを記憶しているが、記憶しないで、連続再生処理を実行するたびにリスト構築キーを利用して曲リストを取得してもよい。
【0423】
1.2.3.3.10.再生命令管理テーブルを利用した連続再生制御
本実施の形態では、図85に示したステップを実行するためのコンピュータプログラムがコンテンツサーバS1〜Si、オーディオクライアントC1〜Cj及びコントローラA1〜Akにそれぞれインストールされている。図85中のステップS30341〜S30345,S20141が図76に示した実施の形態と異なるので、ここではこれらを中心に説明する。
【0424】
本実施の形態におけるコンテンツサーバS1には、クライアントインデックスとコントローラインデックスとを対応づけた再生命令管理テーブルが記憶されている。このテーブルの一例を次の表3に示す。表3に示した再生命令管理テーブルには、オーディオクライアントC1に再生を命令した最新のコントローラA1のコントローラインデックスが記録されている。また、オーディオクライアントC2に再生を命令した最新のコントローラA2のコントローラインデックスが記録されている。
【表3】
Figure 0004013949
【0425】
次に、図85に示したフロー図を参照し、本実施の形態の動作を説明する。
【0426】
あるコントローラは、あるコンテンツサーバに蓄積されている曲の再生をあるオーディオクライアントに命令する(S30341)。
【0427】
まず図86に示すように、コントローラA1がコンテンツサーバS1に蓄積されている曲の再生をコンテンツサーバS1経由でオーディオクライアントC1に命令する場合を説明する。この例では、オーディオクライアントC1及びC2並びにコントローラA1〜A3がコンテンツサーバS1に接続されている。
【0428】
コントローラA1は、コンテンツサーバS1にオーディオクライアントC1が接続されているか否かを判断する(S30342)。この例ではオーディオクライアントC1はコンテンツサーバS1に接続されているので、ステップS30314に進む。
【0429】
コントローラA1は、曲リストの中から指定された曲の再生をコンテンツサーバS1経由でオーディオクライアントC1に命令する(S30314)。コンテンツサーバS1は、この再生命令に応じて予め定められた再生命令管理処理を実行する(S20141)。
【0430】
具体的には図87を参照して、コンテンツサーバS1は、再生命令管理テーブルにおけるオーディオクライアントC1のクライアントインデックスに対応づけて、コントローラA1のコントローラインデックスを記録する(S201441)。これによりコンテンツサーバS1は、コントローラA1がオーディオクライアントC1に最後に再生を命令したコントローラであることを記憶していることになる。コンテンツサーバS1は、コントローラA1からの再生命令をオーディオクライアントC1に転送する(S201412)。
【0431】
オーディオクライアントC1はコントローラA1からの再生命令に応じて曲の再生を開始し(S10211)、その再生を終えると、完了ステータスをコンテンツサーバS1に送信する(S10212)。
【0432】
コンテンツサーバS1はオーディオクライアントC1から完了ステータスを受信すると、再生命令管理テーブルを参照してオーディオクライアントC1に最後に再生を命令したコントローラA1を特定し、そのコントローラA1に完了ステータスを送信するとともに、他のコントローラA2及びA3に停止ステータスを送信する(S201413)。完了ステータスを受信したコントローラA1はオーディオクライアントC1に連続再生処理を実行する(S30316)。他方、停止ステータスを受信したコントローラA2及びA3は何ら能動的なアクションを起こさず、単にオーディオクライアントC1の状態を監視する。
【0433】
また、オーディオクライアントC1がコントローラA1からの命令に従って曲を再生している場合において、別のコントローラA2が同じオーディオクライアントC1に別の曲の再生を命令すると、オーディオクライアントC1は現在の曲の再生を中止し、コントローラA2からの命令に従って新たな曲の再生を開始する。このとき、コンテンツサーバS1は再生命令管理テーブルを更新し、次の表4に示すようにコントローラA1のコントローラインデックスをコントローラA2のコントローラインデックスに書き換える。
【表4】
Figure 0004013949
【0434】
次に図88に示すように、コントローラA3がコンテンツサーバS1経由で別のコンテンツサーバS2に蓄積されている曲の再生をオーディオクライアントC1に命令する場合を説明する。
【0435】
コントローラA3は、コンテンツサーバS2にオーディオクライアントC1が接続されているか否かを判断する(S30342)。この例ではオーディオクライアントC1はコンテンツサーバS2に接続されていないので、コントローラA3は予め定められたサーバ切換処理を実行する(S30343)。
【0436】
具体的には図89を参照して、コントローラA3はコンテンツサーバS1経由でオーディオクライアントC1にコンテンツサーバS1からコンテンツサーバS2への切換を命令する(S303431)。コンテンツサーバS1はこの切換命令をオーディオクライアントC1に転送する(S201401)。オーディオクライアントC1は現在接続中のコンテンツサーバS1を切断し(S102401)、切換命令に応じて新しいコンテンツサーバS2に接続を要求する(S102402)。コンテンツサーバS2はこの要求に応じてオーディオクライアントC1との接続を確立する(S201402)。コントローラA3はコンテンツサーバS2との接続を確認する(S30344)。
【0437】
続いて、コントローラA3はコンテンツサーバS2経由で曲の再生をオーディオクライアントC1に命令する(S30314)。コンテンツサーバS2はこの再生命令に応じて、次の表5に示すように、再生命令管理テーブルにおけるオーディオクライアントC1のクライアントインデックスに対応づけて、コントローラA3のコントローラインデックスを記録する(S201441)。
【表5】
Figure 0004013949
【0438】
コンテンツサーバS2は、コントローラA3からの再生命令をオーディオクライアントC1に転送する(S201412)。
【0439】
オーディオクライアントC1はコントローラA3からの再生命令に応じて曲の再生を開始し(S10211)、その再生を終えると、完了ステータスをコンテンツサーバS2に送信する(S10212)。コンテンツサーバS2はオーディオクライアントC1から完了ステータスを受信すると、再生命令管理テーブルを参照してオーディオクライアントC1に最後に再生を命令したコントローラA3を特定し、そのコントローラA3に完了ステータスを送信するとともに、他のコントローラA1及びA2に停止ステータスを送信する(S1413)。完了ステータスを受信したコントローラA3はオーディオクライアントC1に連続再生処理を実行する(S30316)。他方、停止ステータスを受信したコントローラA1及びA2は何ら能動的なアクションを起こさず、単にオーディオクライアントC1の状態を監視する。
【0440】
以上のように本実施の形態によれば、コンテンツサーバがオーディオクライアントに最後に再生を命令したコントローラを管理し、オーディオクライアントからの完了ステータスをそのコントローラにのみ転送しているため、そのコントローラのみが連続再生をオーディオクライアントに命令する。したがって、連続再生命令が競合することはなく、正常に連続再生処理を実行することができる。
【0441】
1.2.4.AVレシーバの制御
図90に示すように、LAN12にはAVRクライアントAC1及びAC2が接続される。AVレシーバAVR1は、EIA−232によりAVRクライアントAC1に接続される。AVレシーバAVR2は、USBによりAVRクライアントAC1に接続される。AVレシーバAVR3は、メーカ特有のシリアルインターフェースによりAVRクライアントAC2に接続される。
【0442】
AVRクライアントAC1及びAC2の各々は、コンテンツサーバとの接続が完了したとき、EIA−232、USBなどのインタフェイスに関する情報をコンテンツサーバSiに通知してもよい。
【0443】
USBの場合、AVRクライアントAC1は、AVレシーバAVR2が接続されたとき、AVレシーバAVR2のベンダIDやプロダクトIDなどの機種情報を取得することができるので、それをコンテンツサーバSiに通知する。EIA−232の場合、AVRクライアントAC1がAVレシーバAVR1の機種情報を取得するのは通常は困難であるから、接続されるAVレシーバAVR1のベンダID及びプロダクトIDをAVRクライアントAC1に予め登録しておき、AVRクライアントAC1がそれをコンテンツサーバSiに通知するようにする。
【0444】
接続される可能性があるAVレシーバが複数ある場合は、AVRクライアントとの通信プロトコルを定めておき、AVRクライアントがAVレシーバの機種情報を取得するようにすればよい。たとえば、AVRクライアントは一定の通信条件(ビットレート、ビット長、パリティなど)で一定時間(たとえば1秒)ごとに機種情報を問い合わせるパケットを送信し、AVレシーバはそれに応答して機種情報を含むパケットを返信するようにすればよい。これにより、AVRクライアントは接続されているAVレシーバを特定することができる。USBの場合も含めてこのような場合、AVRクライアントはコンテンツサーバとの接続が確立した後にAVレシーバの機種情報を取得する可能性もあるので、AVレシーバの機種情報を取得した時点でその機種情報の変更をコンテンツサーバSiに通知する。
【0445】
その結果、コンテンツサーバSiは、AVRクライアントAC1,AC2に接続された又は接続される予定の全AVレシーバAVR1〜AVR3の機種情報を取得することができる。機種情報はコンテンツサーバSiからコントローラAkにも通知されるため、コントローラAkも機種情報を取得することになる。
【0446】
AVレシーバAVRは、図91に示すように、ボリューム、入力切換スイッチ、音場制御用DSPなど、さまざまな被制御素子を有している。コントローラAkはこのような被制御素子を指定して制御コマンドを発行する。そのため、コントローラは、AVレシーバAVRがどのような被制御素子を有しているかという機種情報を持っている。
【0447】
なお、機種情報はコンテンツサーバSiが持っているから、コントローラAkがAVレシーバAVRのベンダID及びプロダクトIDをキーとしてコンテンツサーバSiに機種情報を要求してもよい。
【0448】
制御コマンドは、コントローラAkから出力され、コンテンツサーバSi及びAVRクライアントACを経てAVレシーバAVRに伝えられる。ステータスは逆に、AVレシーバAVRから出力され、AVRクライアントAC及びコンテンツサーバSiを経てコントローラAkに伝えられる。
【0449】
AVRクライアントACは、制御コマンドがAVレシーバAVR用であることを確認すると、AVレシーバAVRにその制御コマンドを出力する。制御コマンドがボリュームの値を制御するものであれば、コントローラAkが発行した制御コマンドは、コンテンツサーバSi及びAVRクライアントACを経てAVレシーバACRに送られ、これによりボリュームが制御される。
【0450】
図92を参照して、コントローラAkは制御コマンドをコンテンツサーバSiに送信し(S35)、コンテンツサーバSiはこれを指定されたAVRクライアントACに送信し(S28)、さらにAVRクライアントはこれをAVレシーバAVRに送信する(S101)。AVRクライアントACはAVレシーバAVRからそのステータスを受信してコンテンツサーバSiに送信し(S102)、コンテンツサーバはSVこれをコントローラAkに送信し(S29)、コントローラAkはこれに応じてAVレシーバAVRのステータスを更新する(S36)。
【0451】
図93に示すように、コンテンツサーバSi、AVRクライアントAC1〜AC3、及びAVレシーバAVR11,AVR12,AVR21,AVR31,AVR32は、コンテンツサーバSiを根とした木のような形状をした経路で制御コマンドを伝達する。
【0452】
図94を参照して、コントローラAkは、制御対象たるAVレシーバAVR及び制御内容を決定し(S3501)、その制御内容に基づいてコマンド本体を生成する(S3502)。続いて、コントローラAkは、図95Aに示すように、コマンド本体に宛先情報を付加した制御コマンドをコンテンツサーバSiに送信する(S3503)。ここでの宛先情報は、制御対象たるAVレシーバAVRを指定するAVレシーバ指定部と、そのAVレシーバAVRに接続されたAVRクライアントACを指定するAVRクライアント指定部とを含む。
【0453】
コンテンツサーバSiはこの制御コマンドを受信し、図95Bに示すように、受信した制御コマンドからAVRクライアント指定部を取り出す(S2801)。コンテンツサーバSiは、このAVRクライアント指定部に基づいて指定されたAVRクライアントACを判断する。続いて、コンテンツサーバSiは、AVRクライアント指定部を取り除いた制御コマンドを指定されたAVRクライアントACに送信する(S2802)。
【0454】
AVRクライアントACはこの制御コマンドを受信し、図95Cに示すように、受信した制御コマンドからAVレシーバ指定部を取り出す(S1011)。AVRクライアントACは、このAVレシーバ指定部に基づいて指定されたAVレシーバを判断する。続いて、AVRクライアントACは、コマンド本体のみからなる制御コマンドを指定されたAVレシーバに送信する(S2802)。
【0455】
このように不要な指定部を順次取り除いて制御コマンドを転送すれば、ネットワークトラフィックを軽減することができる。ただし、指定部を取り除くことなく、制御コマンドをそのまま転送するようにしてもよい。
【0456】
各段階で、コマンド本体の文字列は全く同じである必要はなく、その意味が同じであればよい。すなわち、最終的にAVRクライアントACからAVレシーバAVRに送信される制御コマンドがAVレシーバAVRに理解可能な形式であればよい。
【0457】
このようにして制御コマンドを受信したAVレシーバAVRは、制御コマンドに従って被制御素子を制御する。その結果、被制御素子のステータスが変化すれば、AVレシーバAVRはそのステータスをAVRクライアントACに送信する。このステータスは、図96Aに示すように、ステータス本体のみからなる。
【0458】
AVRクライアントACは、AVレシーバAVRのステータスを受信して記憶するとともに(S1021)、図96Bに示すように、受信したステータスに発信元情報を追加し、それをコンテンツサーバSiに送信する(S1022)。ここでの発信元情報は、ステータスを発信したAVレシーバAVRを指定するAVレシーバ指定部を含む。
【0459】
コンテンツサーバSiはAVRクライアントACからのステータスを受信し、図96Cに示すように、受信したステータスにAVRクライアント指定部をさらに追加し、それをコントローラAkに送信する(S2901)。
【0460】
コントローラAkはコンテンツサーバSiからのステータスを受信し、受信したステータスからAVRクライアント指定部及びAVレシーバ指定部を取り出し、AVレシーバAVRのステータスを更新する(S3601)。
【0461】
なお、ステータスは、被制御素子のステータスだけでなく、コントローラAkでは制御不可能な要素のステータス(たとえば音声信号のレベル情報など)も存在し得る。このようなステータスもAVRクライアントAC及びコンテンツサーバSiを経由してコントローラAkに伝えられる。また、ステータスは、AVレシーバAVRの被制御素子が制御コマンドにより制御されたときだけでなく、そのステータスが変化したときにも送信される。すなわち、AVRクライアントACとAVレシーバAVRとの接続が確認されたときにも、AVRクライアントACはAVレシーバAVRのステータスを取得し、これをコンテンツサーバSiに送信する。
【0462】
このようにして最終的にステータスを受信したコントローラAkは、各AVレシーバAVRのステータスを把握することができる。これにより、コントローラは制御の確認及びステータスの表示を行う。
【0463】
なお、表示目的のステータスであって頻繁に変化する可能性のあるステータスは、AVレシーバAVR又はAVRクライアントACがステータスの送出頻度を適宜低くしてもよい。頻繁に変化するステータスをそのまま表示しても認識しにくいし、送出頻度が高いとネットワークに無用なトラフィックが発生し、コンテンツサーバの負荷も増大するからである。
【0464】
複雑な構成を有する被制御素子は、複数の被制御部を持つ場合がある。たとえば図91中の音場制御用DSPは多くの係数データの設定を必要とするが、その設定はDSPを制御するマイクロコントローラにより行われる。この設定を変更する場合、スタンドアロンのシステムでは、AVレシーバ本体又はそれに接続された表示装置でステータス状態を表示しながら、ユーザのキー操作により行うことになる。この動作を行うのはマイクロコントローラのファームウェアであり、複雑な設定が可能で、かつ使い易い操作を実現しようとすると、プログラム容量の増大や高性能な表示装置が必要になったりと、製品単価や開発費用に影響が出る可能性がある。
【0465】
このシステムでは、係数データの設定パターンをいくつもコンテンツサーバSiに持たせ、コントローラAkに表示された階層メニューからそのうち1つを選択し、AVRクライアントAC経由で係数データを設定することも可能である。
【0466】
また、同時に複数のAVレシーバAVRをコントローラAkの支配下に置けることから、AVレシーバAVRの時刻合わせなどの設定を同時に行うことができる。さらに、これらAVレシーバAVRのステータスをモニタすることにより、リレー録画などの連携動作も可能になる。
【0467】
次に、AVRクライアントACに接続されているAVレシーバAVRのボリュームを上げる場合を説明する。
【0468】
図97を参照して、コントローラAkはクライアントの接続を確認し(S3011)、接続があれば、そのクライアントがAVRクライアントACか否かを判別し(S3014)、AVRクライアントACであれば、ボリュームアップを示す制御コマンドをコンテンツサーバSiに送信する(S35)。コンテンツサーバSiはこれをAVRクライアントACに送信し(S28)、さらにAVRクライアントACはこれをAVレシーバAVRに送信する(S101)。AVRクライアントACはボリュームアップしたことを示すステータスをAVレシーバAVRから受信し、これをコンテンツサーバSiに送信する(S102)。コンテンツサーバSiはこれをコントローラAkに送信し(S29)、コントローラAkはこれに応じてAVレシーバAVRのステータスを更新し、図34に示したモニタを再開する(S36)。
【0469】
次に、AVRクライアントACがAVレシーバAVRのステータスをコンテンツサーバに転送する動作を図98を参照して説明する。
【0470】
AVRクライアントACはAVレシーバAVRからパケットデータを受信すると(S1021)、それがボリューム情報か否かを判別する(S1022)。AVレシーバAVRからデータがEIA−232の場合は、パケット受信はシリアル受信割り込みで行われ、データはキューに入れられる。キューは定時的に読み出され、以降の処理が行われる。
【0471】
続いて、受信したデータがボリューム情報であれば、AVRクライアントACはそのボリューム値を記憶する(S1023)。上記ボリューム情報か否かの判別(S1022)及びボリューム情報の記憶(S1023)は、データがキューに入れられる前に行われる。一方、受信したデータがボリューム情報でなければ、AVRクライアントACは、AVレシーバAVRからのステータスであることを示すAVレシーバ指定部を、受信したパケットデータに追加してコンテンツサーバSiに送信する(S1024)。
【0472】
ボリューム値を記憶した後、ボリューム情報の受信が初めてか否かを判別する(S1025)。初めての場合はステップS1028に進むが、初めてでない場合はAVRクライアントACはボリューム値をコンテンツサーバに送信してから20ミリ秒以上経過しているか否かを判別する(S1026)。20ミリ秒以上経過している場合、AVRクライアントACは前回送信したボリューム値を記憶したボリューム値と比較し(S1027)、異なっている場合はAVレシーバAVRからのステータスであることを示すAVレシーバ指定部をボリューム情報に追加してコンテンツサーバSiに送信する(S1028)。
【0473】
ボリューム値のステータスは他のステータスと比較して短い間隔でやって来る場合があるので、コンテンツサーバSiやコントローラAkの負担になったり、ネットワークに無用なトラフィックの増大をもたらす可能性がある。ボリューム情報はコントローラAkでの表示に用いるだけなので、表示に支障のない間隔で送れば問題ない。そのため、ボリューム情報を受信すると、その値だけを記憶し、変化があったときだけ適当な間隔(ここでは20ミリ秒)をおいてコンテンツサーバSiに送信するようにしている。
【0474】
次に、AVRクライアントACがコンテンツサーバSiからのコマンドをAVレシーバAVRに転送する動作を図99を参照して説明する。
【0475】
AVRクライアントACはAVレシーバAVR用の制御パケットを受信すると(S1031)、そのパケットからAVレシーバAVR用の制御コマンドを取り出す(S1032)。AVRクライアントACは、その制御コマンドがボリューム値問い合わせコマンドか否かを判別する(S1033)。ボリューム値問い合わせコマンドの場合、AVRクライアントACは記憶しておいたボリューム値(未受信の場合は適当な初期値)からボリューム情報を生成し(S1034)、AVレシーバAVRからのステータスであることを示すAVレシーバ指定部をボリューム情報に追加してコンテンツサーバSiに送信する(S1035)。
【0476】
一方、ボリューム値問い合わせコマンドでない場合、そのAVレシーバAVR用の制御コマンドをAVレシーバAVRに送信する(S1036)。AVRクライアントACとAVレシーバAVRとのインタフェイスがEIA−232の場合には、AVRクライアントACからAVレシーバAVRへの送出はバイト単位で割り込みによって行われる。コンテンツサーバSiからの制御コマンドは一旦キューに格納される。キューは定時的な割り込み又はシリアル送信のバッファエンプティの割り込みで読み出され、バイト単位で送出される。
【0477】
上記の形態では、コンテンツサーバSiへのボリューム情報の送出は、初回を除いて変化があったときしか行われない。そのため、AVレシーバAVRがコンテンツサーバSiからのボリューム値問い合わせコマンドに応答してボリューム値を返したとしても、そのボリューム値に変化がなければAVRクライアントACはそのボリューム値をコンテンツサーバSiに返さない。この対策として、コンテンツサーバSiからのボリューム値問い合わせコマンドに対しては、AVRクライアントACはAVレシーバAVRを介さずに応答するようにしている。この形態は、AVレシーバAVRに電源が投入されたときは必ずAVレシーバAVRはボリュームの初期値をステータスとしてAVRクライアントACに送信することが前提となっている。しかし、電源投入のタイミングによっては、AVRクライアントACがこの初期値を受信できない可能性もある。
【0478】
そこで、図100に示すように、AVRクライアントACは初回に限りAVレシーバAVR経由で応答を行うのが好ましい。すなわち、コンテンツサーバSiからの制御コマンドがボリューム値問い合わせコマンドの場合、AVRクライアントACはボリューム値を未だ受信していないか否かを判別する(S1034)。未だ受信していない場合はステップS1036に進み、既に受信している場合はステップS1034に進む。
【0479】
なお、複数種類のAVレシーバが存在する場合において、コントローラAkがこれらのAVレシーバを制御するときは、コントローラAkはAVレシーバの種類に応じて専用の制御コマンドを発行してもよいが、AVレシーバの種類に関係なく汎用の制御コマンドを発行し、コンテンツサーバがこの汎用の制御コマンドを専用の制御コマンドに変換するようにしてもよい。
【0480】
1.2.5.ファームウェアアップデート
コンテンツサーバは、後述するように、クライアントにインストールされているファームウェアをアップデートすることができる。ここでは、クライアントがコンテンツサーバにアップデートを要求する場合と、コンテンツサーバがクライアントに問い合わせをした上でアップデートする場合と、コンテンツサーバが強制的にアップデートする場合とがある。
【0481】
まず、クライアントがコンテンツサーバにアップデートを要求する場合の概要を説明する。図101を参照して、クライアントはファームウェア情報をコンテンツサーバに要求し(S103)、コンテンツサーバはこれに応じてファームウェア情報をクライアントに返信し(S201)、クライアントはこれを受信する(S103)。続いて、クライアントはファームウェアを指定し(S104)、コンテンツサーバはこれに応じて指定されたファームウェアの転送を準備する(S202)。続いて、クライアントはファームウェアをコンテンツサーバに要求し(S105)、コンテンツサーバはこれに応じてファームウェアをクライアントに転送し(S203)、クライアントはこれを受信する(S105)。続いて、クライアントはファームウェアをアップデートし(S106)、アップデートを終えると終了ステータスをコンテンツサーバに送信し(S107)、コンテンツサーバはこれを受信する(S204)。
【0482】
次に、ファームウェアアップデートの詳細を図102を参照して説明する。コンテンツサーバからアップデートを開始する場合は、ステップS2012から処理を開始する。クライアントからアップデートを開始する場合は、ステップS1033から処理を開始する。
【0483】
コンテンツサーバは、まず、ファームウェア情報ファイルを読み込み、図15に示したファームウェア情報データベースを作成しておく(S2011)。たとえば、コンテンツサーバがクライアントごとにアップデートに必要なファイルを読み込み、アップデート情報ファイルを作成する。したがって、この情報ファイルに基づき、クライアントのファームウェアの新旧を判断できる。クライアントは、起動時にプロダクトID及びファームウェアIDをコンテンツサーバに送信する(S1031)。
【0484】
コンテンツサーバからアップデートを開始する場合、たとえばコンテンツサーバがクライアントのプロダクトID及びファームウェアIDに基づいてそのファームウェアが古いと判断した場合や、コンテンツサーバがインターネット上のサイトから新しいファームウェアを取得した場合などには、コンテンツサーバは、クライアントにファームウェアのアップデートを要求するためのファームウェアアップデート要求コマンドを発行し、必要に応じて、アップデートを推奨する新しいファームウェアの情報をクライアントに提示する(S2012)。ユーザが推奨されたファームウェアのアップデートを望まない場合、クライアントはコンテンツサーバからのアップデート要求を拒否し、この処理は直ちに終了する(S1032)。また、ユーザが推奨されたファームウェアのアップデートを保留する場合も、この処理は直ちに終了する(S1032)。ただし、この場合、クライアントはコンテンツサーバに所定時間経過後に再びアップデート要求をするように命令する。また、ユーザが推奨されたファームウェアのアップデートを受け入れる場合、クライアントはそのまま処理を継続する(S1032)。この場合において、コンテンツサーバがクライアントに具体的なファームウェアを提示しているときは、クライアントはステップS1035に進み、直ちにファームウェアのアップデートを開始する。また、コンテンツサーバがクライアントに具体的なファームウェアを提示することなく、単にアップデートを要求しているときは、クライアントはステップS1033に進み、ファームウェアリストを取得する。
【0485】
なお、ファームウェアアップデート要求コマンドは、コントローラがサーバリクエストとして発行してもよい。この場合は、コントローラは後述するS1033〜S1034と同様にして、制御及び監視するクライアントに関するファームウェアリストをコンテンツサーバから取得し、ユーザが所望のファームウェアを選択する。コントローラにて選択されたファームウェアがアップデートを推奨するファームウェア情報としてクライアントに提示される。
【0486】
アップデート要求を受け入れる場合、又はクライアントからアップデートを開始する場合、クライアントはファームウェアリストをコンテンツサーバに要求する(S1033)。ファームウェアリストは、特定クライアントに適用可能なファームウェアを列挙したものである。コンテンツサーバは、ファームウェアリストを常時持っているのではなく、クライアントからの要求に応じてその都度作成する。ファームウェアリストの作成方法は、上述した曲リストの作成方法と基本的に同じである。ただし、ファームウェアリストを作成するときには、コンテンツサーバは、図15に示したファームウェア情報データベースを用いる。このデータベースには、ファームウェア情報がファームウェア数分だけ格納されている。以下、ファームウェアリストの作成方法を詳述する。
【0487】
図103を参照して、まずコンテンツサーバは、ファームウェア情報データベースに格納されているファームウェア情報の番号を示すインデックスを0に初期化する(S20131)。
【0488】
続いて、コンテンツサーバは、インデックスが示すファームウェア情報のプロダクトIDがクライアントのプロダクトIDと一致するか否かを判別する(S20132)。一致する場合、コンテンツサーバはそのファームウェア情報をファームウェアリストに追加し(S20133)、その後、インデックスをインクリメントする(S20134)。一方、一致しない場合、コンテンツサーバは、ステップS20133をスキップし、直ちにインデックスをインクリメントする(S20134)。
【0489】
続いて、コンテンツサーバは、インデックスが示すファームウェア情報の番号が全ファームウェア情報の数nよりも小さいか否かを判別し(S20135)、小さい場合はステップS20132に戻り、一方、小さくない場合はファームウェアリストの作成を完了する。
【0490】
上記の処理により、コンテンツサーバは、ファームウェア情報データベースの中からプロダクトIDが一致するファームウェア情報をピックアップし、ファームウェアリストを作成する。このように、ファームウェアリストは予めデータベース化されているのではなく、クライアントからの要求のたびに一時的に作成されるので、ファームウェアリストを常に格納しておくためのメモリ領域は不要である。
【0491】
続いて、コンテンツサーバは、この作成したファームウェアリストを要求元クライアントに返信する(S2013)。このファームウェアリストも上記曲リストと同様に、コンテンツサーバからクライアントに分割されて送られる。
【0492】
具体的には、図104を参照して、クライアントは、自身のプロダクトIDと、取得しようとする最初のファームウェア情報を示す取得開始インデックスと、取得しようとするファームウェア情報の数を示す取得個数とを含むファームウェアリスト要求コマンドをコンテンツサーバに送信する(S1033)。コンテンツサーバは、このファームウェアリスト要求コマンドに応答して、クライアントのプロダクトIDと同じプロダクトIDを有するファームウェア情報を抽出し、取得開始インデックスが示すファームウェア情報から取得個数が示す数だけファームウェア情報をクライアントに返信する(S2031)。このとき、コンテンツサーバは、送信するファームウェア情報の数を示す有効個数と、コンテンツサーバがクライアントに返信したファームウェアリストよりも後に残っているファームウェアの数を示す残り個数とを併せて送信する。クライアントは、このようなファームウェアリストの一部を受信してメモリに格納する(S10331)。上記処理は、全ファームウェアリストがコンテンツサーバからクライアントに送られるまで繰り返される。
【0493】
続いて、クライアントは、返信されたファームウェアリストの中にユーザがダウンロードしたいファームウェア(新しいバージョンなど)があれば処理を継続し、なければ処理を中止する(S1034)。
【0494】
コンテンツサーバは、新旧を問わず、全てのバージョンのファームウェア情報を送信するので、不具合などにより、クライアントは、古いファームウェアに変更することもできる。
【0495】
アップデートを行う場合、クライアントはアップデートセクションに移行したことを示すステータスをコンテンツサーバに通知する(S103)。コンテンツサーバは、このステータスに応答してエラーの有無を示すエラーコードを返信する(S2014)。クライアントは、ダウンロードしようとするファームウェアのファイルを指定する(S1036)。具体的には、取得したファームウェア情報のリストに格納されているフルパス名を指定する。コンテンツサーバは、指定されたファイルを読み出し、バッファに格納しておく(S2015)。
【0496】
続いて、クライアントは、取得開始アドレス及びデータサイズ(バイト数)を指定し、ファームウェアのデータを取得する(S1037)。コンテンツサーバは、指定された取得開始アドレスから指定されたバイト数分だけデータをバッファから読み出し、クライアントに送信する(S2016)。
【0497】
クライアントは、ファームウェアのデータを最後まで取得したか否かを判別し(S1038)、取得していない場合はステップS1037に戻ってデータの取得を繰り返す。取得し終えた場合、クライアントはファームウェアを書き換え(S1039)、アップデートを終了する(S1040)。コンテンツサーバは、開いていたファームウェアのファイルを閉じ、バッファを解放する(S2017)。
【0498】
さらに、クライアントがファームウェアの書き換えを完了したときは、不明ステータスをコンテンツサーバに送信する。クライアントは、コンテンツサーバとの接続を中断して、リセット(すなわち、更新されたファームウェアを起動)し、クライアント情報をコンテンツサーバに通知する。また、クライアントがファームウェアデータを取得失敗したときは、失敗ステータスを送信してもよい。失敗ステータスは、ファームウェアデータ再送信などに用いることができる。
【0499】
なお、コンテンツサーバからアップデート要求を行う場合において、次の様に処理することもできる。すなわち、図102において、コンテンツサーバはアップデート要求の際に、必ずファームウェアの情報をクライアントに提示する(S2012)。コンテンツサーバが推奨するファームウェアをアップデートする場合にはS1035に進み、コンテンツサーバが推奨するファームウェアをアップデートするのではなく、ユーザがファームウェアリストから所望のファームウェアを選択する場合にはS1033に進むようにすることもできる。
【0500】
以上のように、ファームウェアのデータがコンテンツサーバからLAN経由でオーディオクライアントに送信されるので、クライアントのファームウェアを短時間でアップデートすることができ、しかも複数のクライアントのファームウェアを同時にアップデートすることもできる。また、プロダクトIDを用いているため、クライアントに適したファームウェアを自動的に選択してアップデートすることがきる。また、ファームウェアIDを用いているため、最新バージョンのファームウェアを自動的に選択してアップデートすることがきる。
【0501】
2.他の実施の形態
2.1.コンセント内蔵型オーディオクライアント
オーディオクライアントは、図105及び図106に示すように、コンセントボックス50に内蔵されてもよい。コンセントボックス50は一般に、壁52に取り付けられる前面パネル54と、前面パネル54の裏面に取り付けられた筐体56とを備える。この発明の実施の形態では、筐体56の中に、図3に示したオーディオクライアント用の回路が設けられる。LANケーブルは、このオーディオクライアント用の回路に接続される。また、前面パネル54には、電源コンセント58、電源スイッチ60、モジュラージャック(図示せず)、テレビアンテナ用端子(図示せず)などに加えて、オーディオクライアントからのオーディオ信号を出力するためのオーディオ出力端子62が設けられる。これらオーディオ出力端子62はそれぞれ左右のスピーカ装置に接続される。
【0502】
オーディオクライアントは、通常、曲リストを表示するためのディスプレイと、その表示された曲リストから所望の曲を選択するためのスイッチ類とを備えている。ディスプレイやスイッチ類はオーディオクライアントをモニタしかつ制御するために必要であるが、オーディオクライアントと同じLAN12に接続されたコントローラを使用することにより、オーディオクライアントからディスプレイやスイッチ類を除去することができる。また、コントローラを使用する代わりに、オーディオクライアントと同じLAN12に無線で接続された携帯型リモートコントローラを使用してもよい。
【0503】
このようにオーディオクライアントを簡素化することにより、一般家庭のコンセントボックス50に内蔵することができる。簡素化されたコンセント内蔵型オーディオクライアントは、ネットワークから音楽や映像を抽出して再生する機能のみを有し、表示機能や制御機能を有していない。
【0504】
インターネットの普及、特にブロードバンド(高速・大容量)のインフラが整備されるに従い、一家に複数台のパソコンからインターネットに接続する要求が増えると予想されている。宅内で複数台のパソコンをインターネットに接続する最も一般的な方法は、宅内にLANを構築することであり、こうした宅内LANを備えた世帯が増加することは時間の問題となっている。このLANを利用すれば、上述の音楽や映像を宅内の各所に配信することがケーブル1本で可能になる。また、1本のケーブルには音楽/映像信号の他にコントロール信号も併せて伝送することができるから、本システムの設置にはオーディオ/ビデオに関する専門的な知識が不要である。さらに、コスト面でも極めて有利であるため、業務用のみならず、家庭用としても普及しうる。
【0505】
一般家庭において、新築時又はリフォーム時にインターネット接続の利便性を考慮して宅内LANを敷設するケースが増大しているが、このときコンセントボックス50にLANコネクタを設けるのが極めて一般的である。したがって、LANの敷設工事と同時に複数のオーディオクライアントを容易に設置することができる。すなわち、スピーカ(パワードを含む)を接続するだけでオーディオクライアントを構築することができ、また、テレビなどの映像モニタを接続するだけでビデオクライアントを構築することができる。そのため、インテリア上も見栄えのよいオーディオクライアントをセットすることができる。さらに、商品開発の観点からも商品自体の華美なデザイン設計が不要となり、機能を重視した極めてシンプルな設計手法により商品開発コストの低減につながる。また、その構造がシンプル故にリサイクルのし易さの点でも有益である。
【0506】
宅内LANによる配信では、従来のオーディオ/ビデオ機器と異なり、CDやテープといったコンテンツのメディアを必要としない。すなわち、コンテンツは一度コンテンツサーバに格納してしまえば、そのメディアの管理は不要となる。こうした宅内ネットワークによるサーバクライアントの構成によれば、オーディオクライアントにはメディアを挿入する機構や回転駆動装置など、機械系の装置を全く必要としない。したがって、装置の小型化を達成し、さらに高い信頼性とともに長寿命な商品を可能にする。
【0507】
2.2.インターネット上の音楽データを取得
上記実施の形態では、オーディオクライアントは電源投入時にブロードキャストによりコンテンツサーバを探索している。しかし、LAN12上の全コンテンツサーバの電源が落ちていた場合、コンテンツサーバからの応答がないため、オーディオクライアントは永久にコンテンツサーバを探索し続けることになる。これを防止するためには、オーディオクライアントはタイムアウトエラーなどの処理を行えばよいが、タイムアウトエラーの場合、オーディオクライアントは音楽を再生するなどの動作を全く行うことができない。
【0508】
これらの問題を解決するためには、オーディオクライアントがブロードキャストを所定回数繰り返してもコンテンツサーバを発見することができない場合は、インターネット上のWWWサーバにアクセスし、このサーバと接続するようにすればよい。
【0509】
この場合、LAN12は、図107に示すように、ゲートウェイ50を通じてインターネット52に接続される。インターネット52上のWWW(World Wide Web)サーバ54には、音楽配信サイト56に置かれている曲のリストが予め登録されている。このリストには、曲名やアーティスト名など、曲情報の他、音楽データが置かれているURL(Uniform Resource Locator)などが記録されている。
【0510】
図108に示すように、サーバリストが空の場合、オーディオクライアントは、ステップS1102に戻ってブロードキャストをリトライする前に、そのリトライ回数が所定の回数、たとえば3回に達したか否かを判別する(S1109)。リトライ回数が3回に達していない場合、オーディオクライアントはリトライ回数をインクリメントし(S1110)、その後、ステップS1102に戻ってブロードキャストをリトライする。一方、リトライ回数が3回に達している場合、オーディオクライアントはインターネット52上のWWWサーバ54にHTTPで接続する(S1111)。オーディオクライアントが接続に成功した場合は探索を完了するが(S1112)、接続に成功せず、タイムアウトになった場合はエラーとなる(S1113)。
【0511】
オーディオクライアントはWWWサーバ52にアクセスすると、そこから曲情報やURLを受信して解析し、そのURLの音楽配信サイト56から音楽データを受信する。
【0512】
以上のように、コンテンツサーバがLAN12上に存在しない場合又は存在しても稼動していない場合は、オーディオクライアントはインターネット52上のサイト56に自動的にアクセスして音楽データを取得するので、LAN12上のコンテンツサーバを永久に探索し続けることはない。
【0513】
上記の例では、リトライ回数が所定回数に達したとき、オーディオクライアントはインターネット52上のWWWサーバ54に接続するようにしているが、これに代えて、オーディオクライアントがマジックワードをブロードキャストして所定時間が経過したにもかかわらず、LAN12上のいずれのコンテンツサーバからも応答がない場合にインターネット52上のWWWサーバ54に接続するようにしてもよい。
【0514】
2.3.取得データ長変更機能付き再生
上記実施の形態では、オーディオクライアントCjがコンテンツサーバSiに曲データの転送を要求するとき、常に一定量の曲データを要求している。したがって、コンテンツサーバSiに曲データの転送を要求するオーディオクライアントCjの数が少ない場合は問題ないが、この数が多くなると、コンテンツサーバSiにかかる負荷が大きくなり、オーディオクライアントCjがコンテンツサーバSiに曲データの転送を要求してから実際に曲データが転送されるまでの時間が長くなるという問題が生じる。そこで、このコンテンツサーバSiにかかる負荷が均等になるように、オーディオクライアントCjが1回に要求する曲データの量をその都度変更するようにしてもよい。
以下、オーディオクライアントCjがコンテンツサーバSiに曲データの転送を要求してから実際に曲データが転送されるまでの時間に応じて、オーディオクライアントCjが1回に要求する曲データの量を変更する例を説明する。
【0515】
図109を参照して、オーディオクライアントCjは、コンテンツサーバSiに曲データの転送を要求する曲データ転送コマンドを送信する(S1601)と同時に、タイマを動作させ、コンテンツサーバSiから曲データが転送されるまでの応答時間のカウントを開始する(S16011)。なお、最初にオーディオクライアントCjが曲データ転送コマンドを発行するときには、1回に要求すべき適切な曲データの量は不明であるから、取得データ長は予め定められたものになる。
【0516】
続いて、オーディオクライアントCjは曲データを受信し始めると(S16012)、タイマを停止し、コンテンツサーバSiによる曲データの応答時間を取得する(S16013)。
【0517】
オーディオクライアントCjは、図110に示した対比テーブルを参照し、取得した応答時間に対応する取得データ長を決定する(S16021)。この対比テーブルには、所定の応答時間と所定の取得データ長とが対応つけられている。ここでは、応答時間が長いほどコンテンツサーバSiにかかる負荷は大きいから、応答時間が長いほど取得データ長が短くなるように設定されている。たとえばオーディオクライアントCjが20msecの応答時間を取得した場合は、取得データ長を8kバイトと決定する。
【0518】
オーディオクライアントCjは再び曲データの転送をコンテンツサーバSiに要求するが、ここでは上記で決定した取得データ長を送信する(S1605)。以降、上記と同様の動作を繰り返す(S16051〜S16061)。
【0519】
以上のようにこの実施の形態によれば、オーディオクライアントCjがコンテンツサーバSiに要求する曲データの取得データ長を応答時間が長くなるにつれて短くしているため、コンテンツサーバSiに曲データの転送を要求するオーディオクライアントCjの数が増えても、コンテンツサーバSiがオーディオクライアントCjに1回に転送する曲データの量は少なくなる。その結果、各オーディオクライアントCjに対するコンテンツサーバSiの負荷は平均化され、コンテンツサーバSiは複数のオーディオクライアントCjに円滑に曲データを転送することができる。
【0520】
上記の例では、コンテンツサーバの応答時間に応じて取得データ長を決定しているが、これに代えて、取得しようとする曲のデータフォーマットに応じて取得データ長を決定するようにしてもよい。すなわち、図35において、曲データ転送要求(S1601)前に、図32に示す検索データに基づいて、曲の音声フォーマットを取得する。そして、曲の音声フォーマットに基づいて、取得データ長を設定する。一般にMP3形式のデータは圧縮されているためにサイズが小さいのに対し、WAV形式のデータはサイズが大きい。そこで、取得しようとする曲のデータフォーマットがMP3の場合には、1回にたとえば4Kバイトのデータを取得し、WAVの場合には、1回にたとえば16Kバイトのデータを取得するようにしてもよい。
【0521】
2.4.スキップ再生
上記実施の形態では、オーディオクライアントCjは曲リストの順序にしたがってコンテンツサーバSiに曲データの転送を要求している。しかしながら、ユーザが現在再生中の曲をはじめから聴きなおしたい場合がある。また、ユーザが現在再生中の曲をスキップして、他の曲を聴きたい場合もある。そこで、オーディオクライアントCjがこのようなユーザの要求に対応して曲データ転送の要求をできるようにしてもよい。
【0522】
図111を参照して、オーディオクライアントCjが図112に示した曲リスト中の曲3の再生を行っている場合、オーディオクライアントCjは曲3の音楽データのうち指定範囲の音楽データの転送をコンテンツサーバSiに要求し(S1607)、コンテンツサーバSiはこの要求に応じて指定範囲の音楽データをオーディオクライアントCjに返信し(S2604)、オーディオクライアントCjはこれを受信し、メモリ32に格納する(S1608)。この動作の繰り返しにより曲3は再生される。
【0523】
曲3の再生中に、ユーザが曲3の再生を終了して、曲4を聴こうとした場合(図112における(1)ケース)、ユーザはオーディオクライアントCjに曲4へのスキップ要求を行う。オーディオクライアントCjはユーザからのスキップ要求を受け(S1640)、メモリ32に格納された曲リスト内容を確認し、曲4のファイル名を取得する(S1641)。ユーザからのスキップ要求がない場合は、ステップS1607に戻って曲3のデータ転送の要求を行う。
【0524】
以降のオーディオクライアントCjおよびコンテンツサーバSiの動作については図35での動作と同じであるため、その説明は繰り返さない。
【0525】
以上の動作により、オーディオクライアントCjは曲3の再生中に曲4へスキップ再生できる。
【0526】
なお、オーディオクライアントCjが曲3を再生中において、ユーザが曲3を初めから再び聴こうとする場合(図112における(2)ケース)、ユーザが曲5を聴こうとする場合(図112における(3)ケース)、ユーザが曲2を聴こうとする場合(図112における(4)ケース)等についても同様の動作により、オーディオクライアントCjはスキップ再生できる。
【0527】
以上のようにこの実施の形態によれば、オーディオクライアントCjはメモリ内に格納された曲リストを用いることで、現在再生中の曲から他の曲へスキップ再生できる。
【0528】
2.5.リピート再生
また、ユーザが指定する第1アドレスと第2アドレスとの間で、データを繰り返して再生するA−B間リピート再生を行うことができる。まず、ユーザは1回目のA−B間リピート操作を行い、繰り返しの始まりを示す第1アドレスを指定する。すなわち、図113を参照して、オーディオクライアントは、曲データの転送要求(および曲データの取得)の際に(S1601)、ユーザからの操作があって(S1642)、ユーザからの操作がA−B間リピート要求であって(S1643)、1回目の要求であるので(S1644)、ユーザが指定したアドレスを第1アドレス(addr1)として記憶する。そして、前回の取得開始アドレス(addr)に取得データ長(size)を加算して取得開始アドレス(addr)を算出し(S1646)、S1601へと戻る。
【0529】
次に、ユーザは2回目のA−B間リピート操作を行い、繰り返しの終わりを示す第2アドレスを指定し、リピート動作を開始させる。すなわち、S1644において、ユーザからのA−B間リピート要求が2回目の要求である(1回目の要求ではない)ので、ユーザが指定したアドレスを第2アドレス(addr2)として記憶する(S1647)。
【0530】
そして、オーディオクライアントは、A−B間リピートモードに入る(S1648)。すなわち、取得開始アドレスを第1アドレスに変更し(S1649)、曲データ転送要求(および曲データ取得)を行う(S1601)。ここで、オーディオクライアントは、A−B間リピート状態であると判断し(S1650)、取得開始アドレス(=前回の取得開始アドレス+取得データ長)が第2アドレスより大きくなるか否かを判別する(S1651)。取得開始アドレスが未だ第2アドレス以下であれば、曲データ転送要求を続ける(S1646およびS1601)。そして、S1651において、取得開始アドレスが第2アドレスより大きくなる場合には、取得開始アドレスを再び第1アドレスに変更し(S1652)、曲データ転送要求を行う(S1601)。従って、第1アドレスと第2アドレスとの間でリピート再生を行うことができる。また、ユーザはリピート解除操作を行うことにより、リピート状態を解除することができる(S1643、S1653およびS1654)。
【0531】
2.6.途中再生
また、取得開始アドレスをユーザが指定する(例えば、開始時間を入力する)ことにより、指定アドレスからの曲の再生を行うことができる。すなわち、図114を参照して、例えば曲データの転送要求(および曲データの取得)の際に(S1601)、ユーザからの操作があって(S1656)、アドレスの指定である場合には(S1657)、オーディオクライアントはユーザから指定のあったアドレスを取得する(S1658)。例えば、曲の総再生時間とユーザが入力した開始時間からアドレスを算出する。そして、取得開始アドレスをユーザから指定のあったアドレスに変更して(S1659)、曲データ転送要求(および曲データ取得)を行う(S1601)。従って、ユーザが指定するアドレスからの曲の再生行うことができる。さらに、ユーザがアドレスを指定することができるのは、オーディオクライアントが再生状態のときに限らず、例えば、停止状態や一時停止状態のときであってもよい。
【0532】
2.7.自動接続回復機能付きクライアント
ネットワークオーディオシステムでは、上述したように、オーディオクライアントがコンテンツサーバに接続され、コンテンツサーバから配信された音楽を再生しているが、配信中にコンテンツサーバの異常によりオーディオクライアントがコンテンツサーバから切り離された場合、オーディオクライアントはコンテンツサーバに再び接続されなければ音楽を再生することができない。入力装置を有する通常のオーディオクライアントの場合、その入力装置を操作することによりそのオーディオクライアントに図5に示したようにコンテンツサーバとの接続処理を再び実行させればよい。しかし、上述したコンセント内蔵型オーディオクライアントの場合、入力装置を備えていないため、一旦コンテンツサーバから切り離されるとそのまま放置されてしまう。したがって、オーディオクライアントは以下のような自動接続回復機能を備えているのが望ましい。
【0533】
図115を参照して、オーディオクライアントCjはコンテンツサーバSiと接続してから所定期間が経過したか否かを判断する(S110)。所定期間経過後、オーディオクライアントCjはコンテンツサーバSiとの接続が維持されているか否かを判断する(S111,S112)。具体的には、オーディオクライアントCjは接続確認コマンドをコンテンツサーバSiに送信する(S111)。コンテンツサーバSiからオーディオクライアントCjに接続確認コマンドに対する返答がある場合(S112)、接続は維持されていると判断される。一方、返答がない場合や送信エラーが起きる場合(S112)、接続は切断されていると判断される。返答方法としては、たとえばコンテンツサーバSiが送信された接続確認コマンドと同じコマンドを返信する方法がある。
【0534】
ステップS112で返答があった場合、オーディオクライアントCjは再びS110に戻って所定期間経過後に接続が維持されているか否かを判断する(S110〜S112)。これにより、オーディオクライアントCjは所定期間ごとにコンテンツサーバSiとの接続状態をチェックする。接続が切断されている場合、オーディオクライアントCjは同じコンテンツサーバSiに対して再接続を試みる(S12)。
【0535】
再接続を試みた結果、コンテンツサーバSiとの接続に成功した場合(S113)、オーディオクライアントCjは切断直前のクライアントステータスをコンテンツサーバSiに送信する(S13)。クライアントステータスは例えば、「再生」、「停止」、「ポーズ」等の再生状態や、音量情報、リスト構築キーなどを含む。よって、オーディオクライアントCjはコンテンツサーバSiとの接続状態をもとどおりに回復できる。その結果、ユーザはオーディオクライアントCjがコンテンツサーバSiと接続し直したことを意識せずにオーディオクライアントCjを利用できる。
【0536】
一方、再接続を試みた結果、コンテンツサーバSiとの接続に失敗した場合(S113)、オーディオクライアントCjは同じコンテンツサーバSiとの接続回復を断念し、他のコンテンツサーバSiとの接続処理を実行する(S11〜S13)。具体的には、オーディオクライアントCjはブロードキャストにより接続可能なコンテンツサーバSiを探索し(S11)、探索したコンテンツサーバSiに対して接続を行う(S12)。接続後、オーディオクライアントCjは切断直前のクライアントステータスをコンテンツサーバSiに送信する(S13)。
【0537】
オーディオクライアントCjは、図115に示した接続回復プログラムをインストールすることにより、上述した自動接続回復機能を備える。
【0538】
以上の動作により、オーディオクライアントCjから所定期間ごとに接続状態を確認し、切断されていればオーディオクライアントCj自身が再接続を実行する。そのため、コンテンツサーバSiの異常により接続が切断されても、オーディオクライアントCjがコンテンツサーバSiから切断されたまま放置されることはない。また、接続していたコンテンツサーバSiの異常によりそのコンテンツサーバSiと再接続ができない場合でも、オーディオクライアントCjは他のコンテンツサーバSiと接続する。その結果、ユーザは常にコントローラAkを用いてオーディオクライアントCjを制御することができる。
【0539】
また、オーディオクライアントCjは接続先のコンテンツサーバSiに切断直前のクライアントステータスを送信しているため、オーディオクライアントCjは他のコンテンツサーバSiに接続されても切断直前と同じ状態にできる。その結果、ユーザはオーディオクライアントCjがコンテンツサーバSiと切断されたことを意識することなく、オーディオクライアントCjを利用できる。
【0540】
本実施の形態では、オーディオクライアントCjが自動接続回復機能を備えているが、コントローラAkが自動接続回復機能を備えていてもよい。また、音楽再生機能及び制御機能を併有する能動的なクライアントよりはむしろ、音楽再生機能だけを有する受動的なクライアントが自動接続回復機能を備えているのが好ましい。制御機能を有さない受動的なオーディオクライアントCjは自らコンテンツサーバSiにコマンドを送信することがないため、一旦コンテンツサーバSiとの接続が切断されるとそのまま放置されてしまい、ユーザがそのオーディオクライアントCjを再起動しない限りコンテンツサーバSiとの接続を回復できないからである。
【0541】
上述した全ての実施の形態における各ステップは、コンピュータに実行させるための動作プログラムを形成する。よって、この動作プログラムを、コンテンツサーバSi、オーディオクライアント、コントローラ、及びAVRクライアントにインストールすることにより、ネットワーク型オーディオシステムを構築することができる。また、この動作プログラムは、そのままインターネットなどの電気通信回線を通じて配信されてもよいが、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な記憶媒体に格納されて配布されてもよい。
【0542】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【0543】
【図1】本発明の実施の形態によるネットワーク型オーディオシステムの全体構成を示す機能ブロック図である。
【図2】図1中の各サーバの構成を示す機能ブロック図である。
【図3】図1中の各オーディオクライアントの構成を示す機能ブロック図である。
【図4】図1中の各コントローラの構成を示す機能ブロック図である。
【図5】図1〜図3に示したサーバ及びオーディオクライアントの初期接続フェーズにおける動作を示すフロー図である。
【図6】図5中のオーディオクライアントによるサーバ探索動作を示すフロー図である。
【図7】図5中のクライアント及びサーバによる接続動作を示すフロー図である。
【図8】図7に示した接続動作を終えたサーバによるプッシュ動作を示す図である。
【図9】図8に続いて、コントローラからサーバへのオーディオクライアントに対するサーバリクエスト動作を示す図である。
【図10】図9に続いて、オーディオクライアントからサーバを通じてコントローラにステータスを通知する動作を示す図である。
【図11】図5中のオーディオクライアントによるクライアント情報送信動作を示すフロー図である。
【図12】図1及び図2に示したサーバによる初期設定動作及びメイン動作を示すフロー図である。
【図13】図2に示したサーバに保存されるクライアント情報データベースを示す図である。
【図14】図2に示したサーバに保存されるコンテンツ情報データベースを示す図である。
【図15】図2に示したサーバに保存されるファームウェア情報データベースを示す図である。
【図16】図12中のサーバ探索に対する応答のサブルーチンを示すフロー図である。
【図17】図12中のコマンドポート接続受付処理のサブルーチンを示すフロー図である。
【図18】図12中のプッシュポート接続受付処理(その1)のサブルーチンを示すフロー図である。
【図19】図12中のプッシュポート接続受付処理(その2)のサブルーチンを示すフロー図である。
【図20】図15中のコマンド処理のサブルーチンを示すフロー図である。
【図21】図20中のステータス通知コマンド処理のサブルーチンを示すフロー図である。
【図22】図20中のサーバリクエスト発行コマンド処理のサブルーチンを示すフロー図である。
【図23】図1〜図3に示したサーバ及びオーディオクライアントによる曲リスト取得及び再生動作を示すフロー図である。
【図24】図23中のオーディオクライアントによる曲リスト取得動作を示すフロー図である。
【図25】図24中のジャンルリスト及び曲リスト取得動作を示すフロー図である。
【図26】図25で取得したジャンルリストを格納した領域を示す図である。
【図27】図14に示したコンテンツ情報データベースのレコード構造を示す図である。
【図28】図25中のサーバによるジャンルリスト作成動作を示すフロー図である。
【図29】図25で取得した曲リストを格納した領域を示す図である。
【図30】図25中のサーバによる曲リスト作成動作を示すフロー図である。
【図31】図25中のリスト要求コマンドのフォーマットを示す図である。
【図32】図25中の検索データのフォーマットを示す図である。
【図33】図25中の曲リスト取得動作におけるバッファメモリの遷移状態を示す図である。
【図34】図25に示したジャンルリスト及び曲リスト取得動作に加え、アルバムリスト取得動作を示すフロー図である。
【図35】図23中のオーディオクライアントによる曲指定、再生及び停止、並びにサーバによる曲配信準備及び配信の動作を示すフロー図である。
【図36】図35に続くフロー図である。
【図37】図35中の曲情報要求コマンドを示す図である。
【図38】図35中の曲情報を示す図である。
【図39】図35中の曲再生準備コマンドを示す図である。
【図40】図35中のエラーコードを示す図である。
【図41】図35中の曲データ転送要求コマンドを示す図である。
【図42】図35中の曲データを示す図である。
【図43】図42に示した曲データを格納するためのバッファメモリの構成を示す図である。
【図44】図43に示したバッファメモリにおいて、曲の先頭から1バッファ分の曲データを格納した状態を示す図である。
【図45】図44に続き、全バッファ分の曲データを格納した状態を示す図である。
【図46】図45に続き、先頭バッファから曲データを出力する状態を示す図である。
【図47】図46に続き、1バッファ分の空きが生じた状態を示す図である。
【図48】図47に続き、バッファの空きが埋まった状態を示す図である。
【図49】図1〜図3に示したクライアント及びサーバによる早送り再生動作を示すフロー図である。
【図50】図1〜図3に示したクライアント及びサーバによる一時停止動作を示すフロー図である。
【図51】図1中のコントローラによるサーバとの接続動作を示すフロー図である。
【図52】図51中の監視ハンドル及び制御ハンドル取得動作を示すフロー図である。
【図53】サーバによる複数のオーディオクライアントから複数のコントローラへのステータス通知を示す図である。
【図54】図54において、コントローラが監視ハンドルを取得した場合のステータス通知を示す図である。
【図55】図1中のコントローラによるオーディオクライアントのモニタ動作を示すフロー図である。
【図56】図55に示したモニタ動作の詳細を示すフロー図である。
【図57】図1中のコントローラによるオーディオクライアントの制御動作を示すフロー図である。
【図58】図57中のオーディオクライアントによる制御コマンド処理動作のサブルーチンを示すフロー図である。
【図59】図58中の再生制御動作のサブルーチンを示す図である。
【図60】図13に示したクライアント情報データベースに含まれるクライアントタイプの詳細を示す図である。
【図61】図59に示した再生制御における曲リスト表示処理動作を示すフロー図である。
【図62】図61中の曲リスト表示において、MP3及びWAVの両方を再生可能なオーディオクライアントに関する曲リストの表示画面を示す図である。
【図63】図61中の曲リスト表示において、MP3は再生可能であるが、WAVは再生不可能なオーディオクライアントに関する曲リストの表示画面を示す図である。
【図64】図59に示した再生制御においてユーザからの再生命令処理動作を示すフロー図である。
【図65】図1中のコントローラによる連続再生制御において、再生コマンドの送信を示す図である。
【図66】図65に続き、完了及び停止ステータスの送信を示す図である。
【図67】図66に示した完了及び停止ステータスの送信動作を示すフロー図である。
【図68】図66に続き、再生コマンドの送信を示す図である。
【図69】図65〜図68に示した連続再生制御で用いられるリスト構築キーの構成を示す図である。
【図70】図69に示したリスト構築キーに含まれるフィルタの種類を示す図である。
【図71】図69に示したリスト構築キーを用いた連続再生制御動作を示すシーケンス図である。
【図72】図56及び図71に示したコントローラによる完了処理動作を示すフロー図である。
【図73】優先順位を付けた連続再生処理の動作を示すフロー図である。
【図74】図73に示した連続再生処理を示す機能ブロック図である。
【図75】図73に示した連続再生処理において、優先順位が最高のコントローラが切断された場合の連続再生処理を示す機能ブロック図である。
【図76】制御ハンドルを利用した連続再生処理の動作を示すフロー図である。
【図77】図76に示した連続再生処理を示す機能ブロック図である。
【図78】コンテンツサーバによる連続再生処理を示す機能ブロック図である。
【図79】図78に示した連続再生処理の動作を示すフロー図である。
【図80】図78に示した連続再生処理において、オーディオクライアントが複数ある場合の連続再生処理を示す機能ブロック図である。
【図81】図80に示した連続再生処理において、コンテンツサーバも複数ある場合の連続再生処理を示す機能ブロック図である。
【図82】図81に示した連続再生処理において、コンテンツサーバが切り換えられた場合の連続再生処理を示す機能ブロック図である。
【図83】図81に示した連続再生処理において、コントローラも複数ある場合の連続再生処理を示す機能ブロック図である。
【図84】オーディオクライアント自身による連続再生処理の動作を示すフロー図である。
【図85】再生命令管理テーブルを利用した連続再生処理の動作を示すフロー図である。
【図86】図85に示した連続再生処理を示す機能ブロック図である。
【図87】図85中の再生命令管理処理の詳細を示すフロー図である。
【図88】図85に示した連続再生処理において、コンテンツサーバが切り換えられた場合の連続再生処理を示す機能ブロック図である。
【図89】図85中のサーバ切換処理の詳細を示すフロー図である。
【図90】サーバ、コントローラ、AVRクライアント、及びAVレシーバを含むネットワーク型オーディオシステムの構成を示す機能ブロック図である。
【図91】図90に示したネットワーク型オーディオシステムにおいて、ステータス及びコマンドの流れを示す機能ブロック図である。
【図92】図90及び図91に示したネットワーク型オーディオシステムにおいて、コントローラによるAVレシーバの制御動作を示すフロー図である。
【図93】図90に示したネットワーク型オーディオシステムにおいて、制御コマンド及びステータスの伝達経路を示す機能ブロック図である。
【図94】図93に示したコマンド及びステータスの伝達動作を示すフロー図である。
【図95】図94に示した各段階における制御コマンドを示す図である。
【図96】図94に示した各段階におけるステータスを示す図である。
【図97】図90〜図96に示したネットワーク型オーディオシステムにおいて、コントローラがAVRクライアントを通じてAVレシーバAVRのボリュームを上げる動作を示すフロー図である。
【図98】図90〜図96に示したネットワーク型オーディオシステムにおいて、AVレシーバのステータスをサーバに転送する場合におけるAVRクライアントの動作を示すフロー図である。
【図99】図90〜図96に示したネットワーク型オーディオシステムにおいて、サーバからの制御コマンドをAVレシーバに転送する場合におけるAVRクライアントの動作を示すフロー図である。
【図100】図99に示した動作の改良例を示すフロー図である。
【図101】図1中のクライアント及びサーバによるファームウェアアップデート動作を示すフロー図である。
【図102】図101に示したファームウェアアップデート動作の詳細を示すフロー図である。
【図103】図102中のファームウェアリスト作成動作を示すフロー図である。
【図104】図102中のファームウェアリストの送信動作を示すフロー図である。
【図105】本発明の他の実施の形態によるオーディオクライアントの外観構成を示す正面図である。
【図106】図105に示したオーディオクライアントの側面図である。
【図107】本発明の他の実施の形態によるネットワーク型オーディオシステム及びインターネットの全体構成を示す機能ブロック図である。
【図108】図107に示したネットワーク型オーディオシステムにおけるサーバ探索動作を示すフロー図である。
【図109】本発明の他の実施の形態による曲データの転送動作を示すフロー図である。
【図110】図109中のS16021,S16061で参照される対比テーブルを示す図である。
【図111】本発明の他の実施の形態によるオーディオクライアントのスキップ再生動作を示すフロー図である。
【図112】図111に示したスキップ再生動作において、オーディオクライアントのメモリに格納された曲リストを示す図である。
【図113】本発明の他の実施の形態によるオーディオクライアントのリピート再生動作を示すフロー図である。
【図114】本発明の他の実施の形態によるオーディオクライアントの途中再生動作を示すフロー図である。
【図115】本発明の他の実施の形態によるオーディオクライアントの監視処理及び接続回復処理を示すフロー図である。

Claims (12)

  1. サーバと、前記サーバに接続された少なくとも1つの第1のクライアントと、前記サーバに接続された第2のクライアントとを備えたネットワーク型コンテンツ再生システムであって、
    前記サーバは、
    複数のコンテンツを蓄積する蓄積手段と、
    前記複数のコンテンツの中から選択されたコンテンツを前記第1のクライアントに送信するコンテンツ送信手段と
    前記第1のクライアントにより再生されるべき複数のコンテンツを列挙したコンテンツリストを作成するために必要なリスト構築キーを含むクライアント情報を記憶するクライアント情報記憶手段と、
    前記第1のクライアントに関するクライアント情報を前記クライアント情報記憶手段から読み出して前記第2のクライアントに送信するクライアント情報送信手段と、
    前記第2のクライアントからの要求に応じて前記第2のクライアントから送信されたリスト構築キーに基づいて前記コンテンツリストを作成するコンテンツリスト作成手段と、
    前記コンテンツリスト作成手段により作成されたコンテンツリストを前記第2のクライアントに返信するコンテンツリスト返信手段とを含み、
    前記第1のクライアントは、
    前記サーバから送信されたコンテンツを再生する再生手段を含み、
    前記第2のクライアントは、
    前記サーバから送信されたクライアント情報を受信する手段と、
    前記受信されたクライアント情報に含まれるリスト構築キーを前記サーバに送信することにより前記コンテンツリストを前記サーバに要求するコンテンツリスト要求手段と、
    前記サーバから返信されたコンテンツリストを受信するコンテンツリスト受信手段とを含むことを特徴とするネットワーク型コンテンツ再生システム。
  2. 請求項に記載のネットワーク型コンテンツ再生システムであって、
    前記サーバは、前記第2のクライアントに要求を強制的に送信するためのプッシュポートを通じて、前記クライアント情報を前記第2のクライアントに送信することを特徴とするネットワーク型コンテンツ再生システム。
  3. 請求項又は請求項に記載のネットワーク型コンテンツ再生システムであって、
    前記第2のクライアントはさらに、
    前記受信したクライアント情報を表示する手段と、
    前記受信したクライアント情報が変更されているとき、そのクライアント情報の表示を変更する手段とを含むことを特徴とするネットワーク型コンテンツ再生システム。
  4. 請求項に記載のネットワーク型コンテンツ再生システムであって、
    記コンテンツリスト要求手段は、前記受信されたクライアント情報に含まれるリスト構築キーが変更されているとき、そのリスト構築キーを前記サーバに送信することを特徴とするネットワーク型コンテンツ再生システム。
  5. 請求項〜請求項のいずれか1項に記載のネットワーク型コンテンツ再生システムであって、
    前記第2のクライアントは、前記サーバに接続されたとき、前記サーバから送信されたクライアント情報を受信することを特徴とするネットワーク型コンテンツ再生システム。
  6. 請求項1〜請求項5のいずれか1項に記載のネットワーク型コンテンツ再生システムであって、
    前記再生手段は、前記サーバから送信されたコンテンツリストに従って再生を完了したコンテンツの次のコンテンツを再生することを特徴とするネットワーク型コンテンツ再生システム。
  7. 請求項1〜請求項のいずれか1項に記載のネットワーク型コンテンツ再生システムに使用されるサーバ。
  8. 請求項1〜請求項のいずれか1項に記載の手段としてサーバを機能させるためのサーバ用プログラム。
  9. 請求項1〜請求項のいずれか1項に記載のネットワーク型コンテンツ再生システムに使用されるクライアント。
  10. 請求項1〜請求項のいずれか1項に記載の手段としてクライアントを機能させるためのクライアント用プログラム。
  11. コンテンツを再生する第1のクライアントと、前記第1のクライアントを監視する第2のクライアントとに接続可能なサーバであって、
    複数のコンテンツを蓄積する蓄積手段と、
    前記複数のコンテンツの中から選択されたコンテンツを前記第1のクライアントに送信するコンテンツ送信手段と、
    前記第1のクライアントにより再生されるべき複数のコンテンツを列挙したコンテンツリストを作成するために必要なリスト構築キーを含むクライアント情報を記憶するクライアント情報記憶手段と、
    前記第1のクライアントに関するクライアント情報を前記クライアント情報記憶手段から読み出して前記第2のクライアントに送信するクライアント情報送信手段と、
    前記第2のクライアントからの要求に応じて前記第2のクライアントから送信されたリスト構築キーに基づいて前記コンテンツリストを作成するコンテンツリスト作成手段と、
    前記コンテンツリスト作成手段により作成されたコンテンツリストを前記第2のクライアントに返信するコンテンツリスト返信手段とを備えたことを特徴とするサーバ。
  12. サーバから送信されたコンテンツを再生する再生クライアントが接続される前記サーバに接続可能で前記再生クライアントを監視する監視クライアントであって、
    前記サーバから送信されたクライアント情報を受信する手段と、
    前記受信されたクライアント情報に含まれるリスト構築キーを前記サーバに送信することにより前記リスト構築キーに基づいて前記再生クライアントにより再生されるべき複数のコンテンツを列挙したコンテンツリストを作成しかつ送信するよう前記サーバに要求するコンテンツリスト要求手段と、
    前記サーバから返信されたコンテンツリストを受信するコンテンツリスト受信手段とを備えたことを特徴とする監視クライアント。
JP2004509922A 2002-05-31 2003-05-26 ネットワーク型コンテンツ再生システム Expired - Fee Related JP4013949B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP2002158753 2002-05-31
JP2002158753 2002-05-31
JP2002232749 2002-08-09
JP2002232749 2002-08-09
JP2003017931 2003-01-27
JP2003017931 2003-01-27
JP2003045432 2003-02-24
JP2003045432 2003-02-24
PCT/JP2003/006552 WO2003102919A1 (en) 2002-05-31 2003-05-26 Network type content reproduction system

Related Child Applications (5)

Application Number Title Priority Date Filing Date
JP2004328921A Division JP2005182762A (ja) 2004-11-12 2004-11-12 ネットワーク型コンテンツ再生システム
JP2004328966A Division JP4155260B2 (ja) 2002-05-31 2004-11-12 ネットワーク型コンテンツ再生システム
JP2004328958A Division JP4013942B2 (ja) 2002-05-31 2004-11-12 ネットワーク型コンテンツ再生システム
JP2004328507A Division JP3847764B2 (ja) 2004-11-12 2004-11-12 ネットワーク型コンテンツ再生システム
JP2006333180A Division JP4281792B2 (ja) 2002-05-31 2006-12-11 ネットワーク型コンテンツ再生システム

Publications (2)

Publication Number Publication Date
JPWO2003102919A1 JPWO2003102919A1 (ja) 2005-09-29
JP4013949B2 true JP4013949B2 (ja) 2007-11-28

Family

ID=29716231

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2004509922A Expired - Fee Related JP4013949B2 (ja) 2002-05-31 2003-05-26 ネットワーク型コンテンツ再生システム
JP2009253437A Expired - Fee Related JP4929520B2 (ja) 2002-05-31 2009-11-04 ネットワーク型コンテンツ再生システム
JP2011172472A Expired - Fee Related JP5017738B2 (ja) 2002-05-31 2011-08-08 ネットワーク型コンテンツ再生システム
JP2012075820A Expired - Fee Related JP5673588B2 (ja) 2002-05-31 2012-03-29 ネットワーク型コンテンツ再生システム
JP2012075712A Pending JP2012190462A (ja) 2002-05-31 2012-03-29 ネットワーク型コンテンツ再生システム

Family Applications After (4)

Application Number Title Priority Date Filing Date
JP2009253437A Expired - Fee Related JP4929520B2 (ja) 2002-05-31 2009-11-04 ネットワーク型コンテンツ再生システム
JP2011172472A Expired - Fee Related JP5017738B2 (ja) 2002-05-31 2011-08-08 ネットワーク型コンテンツ再生システム
JP2012075820A Expired - Fee Related JP5673588B2 (ja) 2002-05-31 2012-03-29 ネットワーク型コンテンツ再生システム
JP2012075712A Pending JP2012190462A (ja) 2002-05-31 2012-03-29 ネットワーク型コンテンツ再生システム

Country Status (8)

Country Link
US (6) US7634532B2 (ja)
EP (1) EP1508892B1 (ja)
JP (5) JP4013949B2 (ja)
KR (1) KR100903258B1 (ja)
CN (1) CN100515076C (ja)
AU (1) AU2003241772B2 (ja)
CA (1) CA2486671C (ja)
WO (1) WO2003102919A1 (ja)

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
EP1508892B1 (en) * 2002-05-31 2017-07-12 Onkyo Corporation Network type content reproduction system
JP4020039B2 (ja) 2003-07-08 2007-12-12 オンキヨー株式会社 ネットワークavシステム
WO2005015407A1 (ja) 2003-08-08 2005-02-17 Onkyo Corporation ネットワークavシステム
JP3865139B2 (ja) 2003-10-15 2007-01-10 オンキヨー株式会社 ネットワークavシステム
WO2005050477A1 (en) * 2003-11-18 2005-06-02 Nokia Corporation Method, subject terminal device, target terminal device, data content server, system and computer programs for maintaining and updating data contents
JP4114596B2 (ja) 2003-11-19 2008-07-09 オンキヨー株式会社 ネットワークavシステム
JP2005303975A (ja) * 2004-03-19 2005-10-27 Onkyo Corp ネットワークavシステム、コントローラ及びその動作プログラム
US7877328B2 (en) * 2004-07-21 2011-01-25 Sony Corporation Communication system communication method, contents processing device, and computer program
CN100423015C (zh) * 2004-07-21 2008-10-01 索尼株式会社 内容处理装置和内容处理方法
US7362999B2 (en) * 2004-08-23 2008-04-22 General Motors Corporation Method and system for customized music delivery
JP4929726B2 (ja) * 2005-03-07 2012-05-09 富士ゼロックス株式会社 画像処理システム
JP4650677B2 (ja) * 2005-03-14 2011-03-16 ソニー株式会社 関連情報連続出力方法、関連情報連続提供方法、関連情報連続出力装置、関連情報連続提供装置、関連情報連続出力プログラム及び関連情報連続提供プログラム
JP2006285607A (ja) * 2005-03-31 2006-10-19 Sony Corp コンテンツ情報提供システム,コンテンツ情報提供サーバ,コンテンツ再生装置,コンテンツ情報提供方法,コンテンツ再生方法,およびコンピュータプログラム
JP4775843B2 (ja) * 2005-08-10 2011-09-21 株式会社日立製作所 ストレージシステム及び記憶制御方法
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
JP4802348B2 (ja) * 2005-12-14 2011-10-26 オンキヨー株式会社 クライアント装置およびクライアントプログラム
JP2007240973A (ja) * 2006-03-09 2007-09-20 Sony Corp データ選択システム、データ選択装置、データ選択方法及びデータ選択プログラム
US20070220587A1 (en) * 2006-03-15 2007-09-20 Loyer Douglas E Systems, Methods, and Apparatus for Most Advantageous Media Delivery for Rich Media Applications
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
KR100812258B1 (ko) * 2006-09-28 2008-03-10 주식회사 드리머 연속적 컨텐츠 제공을 위한 데이터 방송 시스템 및 연속적컨텐츠 제공 방법
US7634562B2 (en) * 2006-10-27 2009-12-15 Cyscape, Inc. Method and apparatus for determining application responsiveness over a network
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
WO2008114389A1 (ja) * 2007-03-19 2008-09-25 Pioneer Corporation コンテンツ再生システム及びその制御方法
JP5034602B2 (ja) * 2007-03-29 2012-09-26 ヤマハ株式会社 電子音楽装置及びプログラム
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9627081B2 (en) * 2007-10-05 2017-04-18 Kinglite Holdings Inc. Manufacturing mode for secure firmware using lock byte
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8898568B2 (en) * 2008-09-09 2014-11-25 Apple Inc. Audio user interface
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US8843977B2 (en) * 2009-06-04 2014-09-23 Verizon Patent And Licensing Inc. Media content delivery systems and methods
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
KR101584304B1 (ko) * 2009-07-20 2016-01-11 삼성전자주식회사 콘텐츠 요청 장치 및 방법
US9450804B2 (en) * 2009-09-03 2016-09-20 At&T Intellectual Property I, L.P. Anycast aware transport for content distribution networks
WO2011066645A1 (en) * 2009-12-02 2011-06-09 Chalk Media Service Corporation Reliable delivery of content to a push-state aware client device
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
JP4797215B2 (ja) * 2010-02-26 2011-10-19 オンキヨー株式会社 音量調整システム
JP5573337B2 (ja) * 2010-04-30 2014-08-20 ソニー株式会社 情報提供装置、情報提供方法、プログラム、情報処理装置、サービス提供装置および情報処理システム
JP5716302B2 (ja) * 2010-06-30 2015-05-13 ソニー株式会社 情報処理装置、コンテンツ提供方法及びプログラム
US9721035B2 (en) * 2010-06-30 2017-08-01 Leaf Group Ltd. Systems and methods for recommended content platform
US20120079547A1 (en) * 2010-09-24 2012-03-29 Seong-Hwan Kim Multimedia Network Interface Device with Table-Based Connection Management
JP5184606B2 (ja) * 2010-11-01 2013-04-17 株式会社バッファロー コンテンツ送信方法、接続先ストレージ及びコンテンツ送信プログラム
JP5305493B2 (ja) * 2010-11-12 2013-10-02 パナソニック株式会社 サーバ、通信端末、およびそれらを備えた機器連携システム
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
CN102638812A (zh) * 2011-02-12 2012-08-15 苏州达联信息科技有限公司 一种铁路轨道监测传感网络的业务注册方法及装置
CN102638788A (zh) * 2011-02-12 2012-08-15 苏州达联信息科技有限公司 一种铁路轨道监测传感网络业务修改方法及装置
US9646100B2 (en) 2011-03-14 2017-05-09 Verisign, Inc. Methods and systems for providing content provider-specified URL keyword navigation
US9781091B2 (en) 2011-03-14 2017-10-03 Verisign, Inc. Provisioning for smart navigation services
US9811599B2 (en) 2011-03-14 2017-11-07 Verisign, Inc. Methods and systems for providing content provider-specified URL keyword navigation
US10185741B2 (en) * 2011-03-14 2019-01-22 Verisign, Inc. Smart navigation services
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US20120310642A1 (en) 2011-06-03 2012-12-06 Apple Inc. Automatically creating a mapping between text data and audio data
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10509831B2 (en) 2011-07-29 2019-12-17 Leaf Group Ltd. Systems and methods for time and space algorithm usage
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
JP5440625B2 (ja) * 2012-02-06 2014-03-12 オンキヨー株式会社 コントローラ及びそのプログラム
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US8260880B1 (en) * 2012-04-27 2012-09-04 Wirespring Technologies, Inc. Content management system for integrated display substrates
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9674587B2 (en) 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
JP2016508007A (ja) 2013-02-07 2016-03-10 アップル インコーポレイテッド デジタルアシスタントのためのボイストリガ
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
KR101759009B1 (ko) 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
US10057207B2 (en) 2013-04-07 2018-08-21 Verisign, Inc. Smart navigation for shortened URLs
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in a media playback system
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
US9389754B2 (en) 2013-05-14 2016-07-12 Demand Media, Inc. Generating a playlist based on content meta data and user parameters
US9684484B2 (en) 2013-05-29 2017-06-20 Sonos, Inc. Playback zone silent connect
US10715973B2 (en) 2013-05-29 2020-07-14 Sonos, Inc. Playback queue control transition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
KR101499068B1 (ko) * 2013-06-19 2015-03-09 김용진 어플리케이션 공유 서비스 방법 및 이에 적용되는 장치
JP6163266B2 (ja) 2013-08-06 2017-07-12 アップル インコーポレイテッド リモート機器からの作動に基づくスマート応答の自動作動
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
JP6519258B2 (ja) 2015-03-23 2019-05-29 株式会社バッファロー 情報処理装置、及び情報処理方法
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US9843474B2 (en) * 2015-12-23 2017-12-12 Intel Corporation Telemetry adaptation
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
WO2017170010A1 (ja) * 2016-03-30 2017-10-05 日本電気株式会社 情報共有方式
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
JP6544817B1 (ja) * 2018-07-31 2019-07-17 Quadrac株式会社 サーバ装置及びシステム

Family Cites Families (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167159A (ja) 1990-10-31 1992-06-15 Fuji Xerox Co Ltd ネットワークシステムのサーバ検索方式
JPH05257839A (ja) 1991-12-12 1993-10-08 Sony Corp オーディオ信号再生方法およびオーディオ信号入出力方法
JP3075014B2 (ja) 1993-05-14 2000-08-07 松下電器産業株式会社 バスシステム
JPH0749704A (ja) 1993-08-06 1995-02-21 Hitachi Ltd 通信装置の入出力処理方式
JPH07327278A (ja) * 1994-06-01 1995-12-12 Nippon Telegr & Teleph Corp <Ntt> 遠隔制御方式
JPH0823583A (ja) * 1994-07-06 1996-01-23 Nippon Columbia Co Ltd 音量調整装置
JP3946275B2 (ja) * 1995-01-10 2007-07-18 富士通株式会社 リモートインストールシステムおよび方法
JPH08202638A (ja) 1995-01-26 1996-08-09 Namco Ltd ソフトウエア配給システム
JPH08242426A (ja) 1995-03-03 1996-09-17 Toshiba Corp ディスク再生装置
JP3625517B2 (ja) 1995-04-10 2005-03-02 三菱電機株式会社 ビデオデータ転送方法
JP3154921B2 (ja) * 1995-06-09 2001-04-09 富士通株式会社 ビデオ・オン・デマンドシステムにおける映像再生位置割り出し方式
JP3512910B2 (ja) * 1995-07-06 2004-03-31 株式会社東芝 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US5659539A (en) 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
JPH0963176A (ja) 1995-08-28 1997-03-07 Sony Corp ビデオcd再生装置およびビデオcd再生方法
JPH0970018A (ja) 1995-09-01 1997-03-11 Hitachi Ltd ファイルサーバ
JPH0998362A (ja) 1995-09-29 1997-04-08 Nec Corp マルチメディア通信システム
JP3087638B2 (ja) * 1995-11-30 2000-09-11 ヤマハ株式会社 音楽情報処理システム
US5732217A (en) * 1995-12-01 1998-03-24 Matsushita Electric Industrial Co., Ltd. Video-on-demand system capable of performing a high-speed playback at a correct speed
JPH09244900A (ja) 1996-03-11 1997-09-19 Taito Corp 通信カラオケ装置、通信カラオケ用ホストコンピュータ及び通信カラオケシステム
JPH09271002A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp ビデオデータ配信方式
JPH09284343A (ja) 1996-04-12 1997-10-31 Kokusai Denshin Denwa Co Ltd <Kdd> 蓄積型マルチメディア情報の転送再生方法および装置
JP3972381B2 (ja) * 1996-04-12 2007-09-05 ソニー株式会社 情報転送装置及び情報転送方法
EP0806873A3 (en) * 1996-05-08 1998-11-18 Matsushita Electric Industrial Co., Ltd. Multiplex transmission method and system, and audio jitter absorbing method used therein
JP3258236B2 (ja) 1996-05-28 2002-02-18 株式会社日立製作所 マルチメディア情報転送システム
JPH09331518A (ja) 1996-06-13 1997-12-22 Nippon Telegr & Teleph Corp <Ntt> 動画像データ提供システムにおけるジャンプ先指定方法
JP3825099B2 (ja) 1996-09-26 2006-09-20 富士通株式会社 映像データ転送方式およびビデオサーバ装置
EP0901285A4 (en) 1997-02-26 2002-05-29 Mitsubishi Electric Corp DEVICE, SYSTEM AND METHOD FOR DISTRIBUTING VIDEO DATA
JPH10320340A (ja) 1997-03-14 1998-12-04 Toshiba Corp クライアントサーバシステムにおける、メッセージ制御方法ならびに装置、及び同方法がプログラムされ記録、伝播する記録媒体もしくは通信媒体
JPH10276408A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> ビデオ情報提供制御方法およびシステム
JP3714441B2 (ja) 1997-04-28 2005-11-09 松下電器産業株式会社 サーバシステムとそのプロトコル処理方法
JP3261399B2 (ja) 1997-07-31 2002-02-25 松下電器産業株式会社 リモートメンテナンス方法およびリモートメンテナンス装置
US6263497B1 (en) * 1997-07-31 2001-07-17 Matsushita Electric Industrial Co., Ltd. Remote maintenance method and remote maintenance apparatus
JP3201313B2 (ja) 1997-08-01 2001-08-20 日本ビクター株式会社 データ伝送システム及び再生装置
JPH1166824A (ja) * 1997-08-15 1999-03-09 Sony Corp オーディオサーバシステム
JPH1196014A (ja) 1997-09-25 1999-04-09 Nec Corp プログラム部品配信装置および方法
EP0913775A1 (en) * 1997-10-03 1999-05-06 CANAL+ Société Anonyme Modem control
JP3201319B2 (ja) * 1997-11-01 2001-08-20 日本電気株式会社 ネットワークに接続可能な電子機器
JP3518292B2 (ja) 1997-12-02 2004-04-12 日本電気株式会社 クライアントサーバシステム
JP3687828B2 (ja) 1997-12-04 2005-08-24 ソニー株式会社 情報処理システムおよび方法、情報提供装置および方法、並びに記録媒体
JPH11219207A (ja) 1998-01-30 1999-08-10 Yaskawa Electric Corp マルチコントローラシステム
JP3275819B2 (ja) * 1998-02-12 2002-04-22 株式会社デンソー 情報通信システム
WO1999043111A1 (en) * 1998-02-23 1999-08-26 Personal Audio, Inc. System for distributing personalized audio programming
JPH11249640A (ja) * 1998-02-27 1999-09-17 Hitachi Ltd 年表表示方法
JPH11259404A (ja) 1998-03-06 1999-09-24 Yukihiko Kobori 自律・協調分散ネットワーク型情報通信処理機構とその装置
JPH11328851A (ja) * 1998-05-19 1999-11-30 Sony Corp 端末装置及び再生方法
JP2000031998A (ja) 1998-07-15 2000-01-28 Nec Corp ネットワーク装置、ネットワークの管理方式および管理方法
JP2000049831A (ja) 1998-07-29 2000-02-18 Yaskawa Electric Corp 家電用ネットワーク装置
JP2000059755A (ja) * 1998-08-07 2000-02-25 Matsushita Electric Ind Co Ltd データサーバシステム、データ受信装置およびデータ送信装置
JP2000075867A (ja) 1998-08-26 2000-03-14 Casio Comput Co Ltd 通信カラオケ装置、曲データ配信装置、及び記録媒体
US6397258B1 (en) * 1998-09-14 2002-05-28 Matsushita Electric Industrial, Co., Ltd. File system
JP2001057571A (ja) 1998-09-14 2001-02-27 Matsushita Electric Ind Co Ltd ファイルシステム
JP2000092125A (ja) * 1998-09-14 2000-03-31 Hitachi Ltd パケット転送装置、中継器、通信網、パケット転送方法および通信網の切替方法
JP3396639B2 (ja) * 1998-09-30 2003-04-14 株式会社東芝 階層記憶装置及び階層記憶制御方法
JP4702911B2 (ja) 1998-09-30 2011-06-15 キヤノン株式会社 カメラ制御方法、カメラ制御サーバ、および記録媒体
JP2000125260A (ja) 1998-10-15 2000-04-28 Toshiba Corp 動画像伝送サーバおよび同サーバを用いた動画像伝送システム並びに動画像伝送制御方法
JP3595709B2 (ja) 1998-11-19 2004-12-02 キヤノン株式会社 周辺制御装置および管理装置および周辺制御装置の環境設定方法および管理装置の環境設定方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2000217167A (ja) * 1998-11-20 2000-08-04 Sony Corp 情報処理装置および方法、並びにプログラム格納媒体
JP2000224207A (ja) 1999-02-02 2000-08-11 Sony Corp 情報処理装置および方法、情報処理システム、並びに提供媒体
JP3179433B2 (ja) 1999-02-09 2001-06-25 九州日本電気ソフトウェア株式会社 端末装置
WO2000047951A1 (fr) * 1999-02-09 2000-08-17 Sony Corporation Procede, appareil et support de traitement de l'information
BR0006168A (pt) * 1999-05-28 2001-04-17 Matsushita Electric Ind Co Ltd Cartão de memória de semicondutor, aparelho de reprodução, aparelho de gravação, processo de reprodução, processo de gravação, e um meio de armazenamento legìvel por computador
CN1187756C (zh) * 1999-05-28 2005-02-02 松下电器产业株式会社 半导体存储器卡、播放装置、记录装置、播放方法、记录方法、和计算机可读记录介质
JP4120906B2 (ja) 1999-06-24 2008-07-16 ソニー株式会社 ネットワークシステム、情報管理装置、端末機器、情報管理方法及び端末機器の登録方法
JP3478200B2 (ja) 1999-09-17 2003-12-15 日本電気株式会社 サーバ・クライアント間双方向通信システム
JP3764311B2 (ja) 1999-10-29 2006-04-05 シャープ株式会社 ネットワーク接続された情報処理装置の周辺機器およびデバイスドライバのバージョン管理方法
JP2001357312A (ja) 1999-11-24 2001-12-26 Sega Corp 情報処理装置、ファイルサーバ、課金管理システムおよび課金管理方法並びにプログラムを記録した記録媒体
US7051110B2 (en) * 1999-12-20 2006-05-23 Matsushita Electric Industrial Co., Ltd. Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
JP2001186162A (ja) 1999-12-24 2001-07-06 Toshiba Corp Av機器ネットワークシステム
JP3975045B2 (ja) 2000-01-24 2007-09-12 パナソニック コミュニケーションズ株式会社 ネットワーク制御装置及びリモート表示装置
JP4269203B2 (ja) * 2000-02-04 2009-05-27 ソニー株式会社 データ処理システム、データ処理装置、データ処理方法、プログラム及び再生装置
JP2001257707A (ja) 2000-03-09 2001-09-21 Sony Corp マルチ再生システム、サーバ装置、端末装置
JP2001256156A (ja) * 2000-03-10 2001-09-21 Victor Co Of Japan Ltd 制御情報システムおよび制御情報伝送方法
JP3749817B2 (ja) * 2000-03-30 2006-03-01 株式会社東芝 送信装置およびその送信方法
WO2001080558A2 (en) * 2000-04-14 2001-10-25 Solidstreaming, Inc. A system and method for multimedia streaming
JP2001309457A (ja) 2000-04-26 2001-11-02 Victor Co Of Japan Ltd 家庭内ネットワークシステム及び家庭内ネットワークに使用するリモートコントロール装置
JP4380886B2 (ja) 2000-04-28 2009-12-09 ソニー株式会社 情報記録再生システムおよび移動可能機器
JP2002014912A (ja) 2000-04-28 2002-01-18 Sony Corp メモリ制御方法、データ受信装置、データ送受信方法およびデータ送受信システム
JP2001318949A (ja) 2000-05-09 2001-11-16 Onkyo Corp コンテンツ配送システム
JP2001326652A (ja) * 2000-05-16 2001-11-22 Nec Miyagi Ltd 監視制御システム
JP4265082B2 (ja) 2000-05-23 2009-05-20 ヤマハ株式会社 サーバクライアントシステムおよびサーバ装置
JP2001344271A (ja) 2000-06-01 2001-12-14 Onkyo Corp ストリームデータ再生システム
JP2002044765A (ja) * 2000-07-28 2002-02-08 Matsushita Electric Ind Co Ltd 遠隔制御システムとゲートウェイ装置
JP2002049556A (ja) * 2000-08-02 2002-02-15 Sharp Corp 家庭内メディア配信システム
JP2002051387A (ja) * 2000-08-04 2002-02-15 Kenwood Corp ネットワークシステム、コントロール機器、再生制御方法及び記録媒体
JP2002055687A (ja) 2000-08-11 2002-02-20 Onkyo Corp 音楽ファイル送受信システム
US7150015B2 (en) * 2000-09-01 2006-12-12 Pace Charles P Method and system for deploying an asset over a multi-tiered network
JP2002078047A (ja) * 2000-09-04 2002-03-15 Sharp Corp ネットワーク制御システム
JP4559602B2 (ja) * 2000-09-06 2010-10-13 ミサワホーム株式会社 マルチメディア情報盤、ケーブルの接続構造およびケーブルの接続方法
JP4453177B2 (ja) * 2000-09-11 2010-04-21 ソニー株式会社 コンテンツ配信システムおよびその方法
JP3751815B2 (ja) 2000-10-04 2006-03-01 日本電信電話株式会社 サービス提供システム
JP2002149166A (ja) * 2000-11-09 2002-05-24 Yamaha Corp 楽曲情報配信装置、方法、及び記録媒体
JP2002152859A (ja) * 2000-11-14 2002-05-24 Matsushita Electric Ind Co Ltd ホームコントロールシステム
JP2002152682A (ja) * 2000-11-14 2002-05-24 Matsushita Electric Ind Co Ltd 画像伝送装置
JP3634742B2 (ja) * 2000-11-15 2005-03-30 三洋電機株式会社 配信システムおよび携帯電話機
JP2002176610A (ja) * 2000-12-08 2002-06-21 Brother Ind Ltd ビデオ操作サーバ、ビデオ操作方法、記録媒体およびプログラム
US6874040B2 (en) * 2000-12-19 2005-03-29 International Business Machines Corporation Employing a data mover to communicate between dynamically selected zones of a central processing complex
JP2002191038A (ja) 2000-12-20 2002-07-05 Hitachi Ltd 動画像配信システム
JP2002199344A (ja) 2000-12-26 2002-07-12 Toshiba Corp マルチメディア情報送信サーバ装置
JP2002223443A (ja) 2001-01-24 2002-08-09 Yamaha Corp トランスコーディング方法およびトランスコーディング装置
JP3965916B2 (ja) * 2001-02-09 2007-08-29 セイコーエプソン株式会社 データ転送システム、転送元端末及び中間処理端末
US20020194596A1 (en) * 2001-06-18 2002-12-19 Srivastava Gopal K. Control of multiple AV-devices by a single master controller using infrared transmitted commands and bus transmitted commands
US6792449B2 (en) 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
JP2003018668A (ja) * 2001-07-02 2003-01-17 Toshiba Corp ネットワーク機器制御装置および方法
JP2003022225A (ja) * 2001-07-09 2003-01-24 Sony Corp 機器制御装置および方法
EP1286351B1 (en) 2001-08-21 2012-08-08 Thomson Licensing File and content management
JP3941435B2 (ja) 2001-08-24 2007-07-04 ヤマハ株式会社 演奏情報再生装置、方法及びプログラム
JP4670209B2 (ja) 2001-09-13 2011-04-13 ヤマハ株式会社 楽曲情報再生装置、及びプログラム
JP2003110561A (ja) * 2001-09-26 2003-04-11 Matsushita Electric Ind Co Ltd ホームネットワーク上のストリーム管理装置
JP2003111048A (ja) 2001-09-26 2003-04-11 Ntt Software Corp コンテンツ再生のためのサーバ及びプログラム
JP2003131975A (ja) 2001-10-24 2003-05-09 Matsushita Electric Ind Co Ltd ストリーミング配信システム及び情報端末
JP2003143222A (ja) 2001-11-06 2003-05-16 Victor Co Of Japan Ltd ネットワーク制御システム
JPWO2003092265A1 (ja) * 2002-04-23 2005-09-08 シャープ株式会社 機器制御管理装置
JP3888532B2 (ja) * 2002-05-14 2007-03-07 ソニー株式会社 コンテンツ再生機器、サーバ接続方法、サーバ接続プログラムおよび記録媒体
US7075899B2 (en) * 2002-05-21 2006-07-11 Actv, Inc. System and method for providing private in-band data to digital set-top boxes in a broadcast environment
JP2003338947A (ja) * 2002-05-22 2003-11-28 Pioneer Electronic Corp 電子機器ネットワークシステム、電子機器制御装置、及び電子機器制御方法
EP1508892B1 (en) 2002-05-31 2017-07-12 Onkyo Corporation Network type content reproduction system
US7490136B2 (en) * 2002-12-17 2009-02-10 Ricoh Company, Ltd. Digital contents distributing system and distributing method
JP4020039B2 (ja) * 2003-07-08 2007-12-12 オンキヨー株式会社 ネットワークavシステム
JP3865139B2 (ja) * 2003-10-15 2007-01-10 オンキヨー株式会社 ネットワークavシステム
JP4275085B2 (ja) * 2005-02-17 2009-06-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、およびデータストリーム生成方法
JP4396590B2 (ja) * 2005-05-13 2010-01-13 ソニー株式会社 再生装置、再生方法および再生プログラム
JP2007042204A (ja) * 2005-08-02 2007-02-15 Sony Corp 再生装置、期限通知方法および期限通知プログラム
JP5055901B2 (ja) * 2005-10-26 2012-10-24 ソニー株式会社 携帯型再生装置、関連情報通知方法および関連情報通知プログラム
JP2008250569A (ja) * 2007-03-29 2008-10-16 Brother Ind Ltd コンテンツ配信システム及びその情報処理方法並びにコンテンツ管理装置及びそのプログラム
JP2010157188A (ja) * 2009-01-05 2010-07-15 Sony Corp 情報処理装置、コンテンツ管理方法及びプログラム

Also Published As

Publication number Publication date
CA2486671C (en) 2011-11-15
EP1508892A4 (en) 2005-08-17
US8005928B2 (en) 2011-08-23
JPWO2003102919A1 (ja) 2005-09-29
KR100903258B1 (ko) 2009-06-17
US8291074B2 (en) 2012-10-16
JP2012190462A (ja) 2012-10-04
WO2003102919A1 (en) 2003-12-11
US20120117148A1 (en) 2012-05-10
AU2003241772A1 (en) 2003-12-19
CA2486671A1 (en) 2003-12-11
JP2012164329A (ja) 2012-08-30
US7634532B2 (en) 2009-12-15
US20100049796A1 (en) 2010-02-25
US20110219064A1 (en) 2011-09-08
US20050203991A1 (en) 2005-09-15
JP2010072657A (ja) 2010-04-02
AU2003241772B2 (en) 2008-11-06
US20120041999A1 (en) 2012-02-16
US7908370B2 (en) 2011-03-15
CN1659623A (zh) 2005-08-24
KR20050003371A (ko) 2005-01-10
JP5017738B2 (ja) 2012-09-05
CN100515076C (zh) 2009-07-15
JP4929520B2 (ja) 2012-05-09
EP1508892B1 (en) 2017-07-12
JP5673588B2 (ja) 2015-02-18
US8037177B2 (en) 2011-10-11
EP1508892A1 (en) 2005-02-23
US8516042B2 (en) 2013-08-20
JP2011242800A (ja) 2011-12-01
US20110137985A1 (en) 2011-06-09

Similar Documents

Publication Publication Date Title
JP4013949B2 (ja) ネットワーク型コンテンツ再生システム
JP3847764B2 (ja) ネットワーク型コンテンツ再生システム
RU2460119C2 (ru) Программируемый мультимедийный контроллер с программируемыми функциями
EP1958439B1 (en) Method of managing a distributed storage system
CN101005389A (zh) 基于upnp的媒体内容再现系统及其方法
JP4812604B2 (ja) ネットワーク型コンテンツ再生システム
JP4155260B2 (ja) ネットワーク型コンテンツ再生システム
JP2005189827A6 (ja) ネットワーク型コンテンツ再生システム
JP4013942B2 (ja) ネットワーク型コンテンツ再生システム
JP2005182762A (ja) ネットワーク型コンテンツ再生システム
JP2005182763A6 (ja) ネットワーク型コンテンツ再生システム
JP4281792B2 (ja) ネットワーク型コンテンツ再生システム

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20060516

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20060802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070903

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4013949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees