JP2012018564A - 通信システム、情報処理装置、情報処理方法、およびプログラム - Google Patents
通信システム、情報処理装置、情報処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2012018564A JP2012018564A JP2010155719A JP2010155719A JP2012018564A JP 2012018564 A JP2012018564 A JP 2012018564A JP 2010155719 A JP2010155719 A JP 2010155719A JP 2010155719 A JP2010155719 A JP 2010155719A JP 2012018564 A JP2012018564 A JP 2012018564A
- Authority
- JP
- Japan
- Prior art keywords
- container
- item
- information
- search
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】アイテムの探索結果を効率的に管理することができるようにする。
【解決手段】通信システムは、DLNA機器であるDMR1、DMS2、およびDMC3がネットワークを介して接続されることによって構成される。DMC3からDMR1に対して、DMS2が管理するルートコンテナの再生が指示された場合、DMR1においては、DMS2が管理するオブジェクトの探索が開始される。探索結果は、ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかる先頭アイテムのトラック番号と、最後に見つかる最終アイテムのトラック番号と、先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けるようにして記憶され、DMR1により管理される。本発明は、DLNA機器に適用することができる。
【選択図】図4
【解決手段】通信システムは、DLNA機器であるDMR1、DMS2、およびDMC3がネットワークを介して接続されることによって構成される。DMC3からDMR1に対して、DMS2が管理するルートコンテナの再生が指示された場合、DMR1においては、DMS2が管理するオブジェクトの探索が開始される。探索結果は、ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかる先頭アイテムのトラック番号と、最後に見つかる最終アイテムのトラック番号と、先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けるようにして記憶され、DMR1により管理される。本発明は、DLNA機器に適用することができる。
【選択図】図4
Description
本発明は、通信システム、情報処理装置、情報処理方法、およびプログラムに関し、特に、コンテンツの探索結果を効率的に管理することができるようにした通信システム、情報処理装置、情報処理方法、およびプログラムに関する。
近年、DLNA(Digital Living Network Alliance)のガイドラインに対応した機器(以下、適宜、DLNA機器という)が普及してきている。複数のDLNA機器を家庭内のネットワークを介して接続することによって、あるDLNA機器に記憶されているコンテンツを、他のDLNA機器で再生したりすることが可能になる。
図1は、3つのDLNA機器を用いて実現される通信システムの構成例を示す図である。
図1の通信システムは、DMSとして動作するDLNA機器、DMRとして動作するDLNA機器、およびDMCとして動作するDLNA機器が、LAN(Local Area Network)などのネットワークを介して接続されることによって構成される。図1の通信システムはいわゆる3Box System Usageの通信システムである。以下、適宜、それぞれのDLNA機器を、単に、DMS、DMR、DMCという。
DMS(Digital Media Server)は、音楽コンテンツやビデオコンテンツなどのコンテンツを記憶し、他のDLNA機器に配信する機器である。図1の例においては、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの内蔵の記録媒体に音楽コンテンツを記録するオーディオ機器がDMSとされている。
以下、音楽コンテンツの再生について説明する。音楽コンテンツの再生は、例えばプレイリストを用いて行われる。適宜、コンテンツのことをアイテムともいう。
DMR(Digital Media Renderer)は、アイテムを再生し、音楽を出力する機器である。図1の例においては、ディスプレイとスピーカを有するテレビジョン受像機がDMRとされている。
DMC(Digital Media Controller)は、UI(User Interface)機能を有し、ユーザによる操作に応じて他のDLNA機器を制御する機器である。図1の例においては、ディスプレイや各種の操作ボタンを有する携帯機器がDMCとされている。
DLNAでは、プレイリストの表記方法としてPlayContainerUriが定義されている。PlayContainerUriには、プレイリストに登録されているアイテムを記憶するDMSの情報、プレイリストとして再生するコンテナと、そのコンテナ内における、最初に再生するアイテムの位置の情報、および、DMSにおいて階層的にコンテナが管理されている場合において、アイテムの探索時に階層を辿る深さの情報などが記述される。プレイリストに登録されているそれぞれのアイテムが、そのプレイリストに対応するコンテナに格納されている。
DMCから送信されたPlayContainerUriを受け取ったDMRは、その記述に基づいてアイテムの探索を行い、見つかったアイテムを再生していくことでプレイリスト再生を実現する。
[プレイリスト再生の流れ]
ここで、図2のフローチャートを参照して、図1の通信システムにおいて行われるプレイリスト再生の流れについて説明する。
ここで、図2のフローチャートを参照して、図1の通信システムにおいて行われるプレイリスト再生の流れについて説明する。
ステップS1において、DMCは、DMSが管理するコンテナのBrowseを実行する。DMCからDMSに対してはBrowse要求(Browse要求を表す情報)が送信される。
ステップS11において、DMSは、DMCによるBrowse要求を受信し、ステップS12において応答する。DMSからの応答には、プレイリストとして選択することが可能な、アイテムが格納されているコンテナの情報が含まれる。
ステップS2において、DMCはDMSから送信されてきた情報を受信する。DMCは、受信した情報に基づいてプレイリストの一覧をディスプレイに表示し、再生するプレイリストをユーザに選択させる。
ステップS3において、DMCは、ユーザによる操作に応じて、再生対象となるプレイリスト(コンテナ)を決定する。ここで決定されたコンテナに格納されているアイテムが順次再生される。
ステップS4において、DMCは、PlayContainerUriを作成する。DMCにより作成されたPlayContainerUriには、ステップS3で決定されたコンテナを指定する情報などが含まれる。
ステップS5において、DMCは、PlayContainerUriをDMRに送信する。
ステップS21において、DMRは、DMCから送信されてきたPlayContainerUriを受信し、ステップS22において解析する。PlayContainerUriを解析することにより、アイテムの配信元となるDMSや、プレイリストに対応するRootコンテナなどが特定される。
ステップS23において、DMRは、アイテムの配信元として特定したDMSが管理する、再生対象のプレイリストに対応するRootコンテナを対象としてBrowseを実行する。DMRからDMSに対してはBrowse要求が送信される。
ステップS13において、DMSは、DMRによるBrowse要求を受信し、ステップS14において応答する。DMSからの応答には、Browse対象のRootコンテナに格納されているオブジェクト(コンテナまたはアイテム)の情報が含まれる。
ステップS24において、DMRは、DMSから送信されてきた情報を受信し、ステップS25において、受信した情報に基づいてアイテムの探索を行う。アイテムの探索については後述する。
探索によってアイテムが見つかった場合、ステップS26において、DMRは、アイテム取得要求(アイテム取得要求を表す情報)をDMSに送信する。ここで、探索によりオブジェクトが見つかるとは、Browseの実行結果としてDMSから送信されてきた情報の中にObjectIDなどのオブジェクトの情報が含まれており、そのオブジェクトの情報をDMRが取得したことを表す。
ステップS15において、DMSは、DMRによるアイテム取得要求を受信し、要求されたアイテムを記録媒体から読み出す。ステップS16において、DMSは、記録媒体から読み出したアイテムをDMRに送信する。
ステップS27において、DMRは、DMSから送信されてきたアイテムを受信し、ステップS28において再生する。
プレイリストに登録されているアイテム毎に、ステップS23乃至S28の処理がDMRにより行われ、また、DMRの処理に対応して、ステップS13乃至S16の処理がDMSにより行われる。図1の通信システムにおいては、プレイリストの再生が以上のようにして行われる。
プレイリストの再生中、DMCからDMRに対しては、適宜、再生方法の指定などが行われる。再生方法には、トラック番号順に再生するノーマル再生、プレイリストに登録されているアイテムをランダムに再生するランダム再生がある。また、トラック番号により指定されたアイテム、または、1曲(1トラック)前、1曲後といったようにして指定されたアイテムを再生するトリック再生がある。
[アイテムの探索]
次に、DMRにより行われるアイテムの探索について説明する。
次に、DMRにより行われるアイテムの探索について説明する。
図3は、DMSが管理するアイテムのツリー構造の例を示す図である。
図3の例においては、あるプレイリストに対応するRootコンテナであるContainer_Aには、第1階層のオブジェクトとして、左から順にItem_8,Container_B,Container_C,Container_D,Container_E,Item_7が格納されている。それぞれのItemは1曲の音楽アイテムに相当する。
また、Container_Aには、第2階層のオブジェクトとして、Container_BにItem_9が格納され、Container_Cに、Container_F,Item_1,Item_2,Container_Gが格納されている。また、Container_DにItem_5が格納され、Container_EにItem_6が格納されている。
さらに、Container_Aには、第3階層のオブジェクトとして、Container_FにItem_10が格納され、Container_GにItem_3とItem_4が格納されている。
図3に示すツリー構造によって、DMSにおいてアイテムが管理されている場合について説明する。ここでは、PlayContainerUriにより指定される、プレイリストとして再生するコンテナ(Rootコンテナ)がContainer_Aであり、最初に再生するアイテムがItem_1であるものとする。DMRにおいてはItem_1の探索が最初に行われる。
はじめに、Container_Aを対象としてDMRによりBrowseが実行される。複数のオブジェクトの情報を送信することが要求されている場合、Browse要求に対する応答として、Container_Aに格納されている第1階層のオブジェクトであるItem_8,Container_B,Container_C,Container_D,Container_E,Item_7の情報がDMSからDMRに送信される。ObjectIDや位置情報(URL(Uniform Resource Locator))を含む各オブジェクトの情報が、例えば図3の左側に示されるオブジェクトの情報の順にソートされ、DMRに送信される。
DMRにおいては、ソートされた先頭のオブジェクトから順に注目され、注目されているオブジェクトがItemである場合には、そのItemがいま探しているItemであるか否かが判断される。また、注目されているオブジェクトがコンテナである場合には、そのコンテナを対象としてBrowseが実行される。
この例においては、Item_8が注目され、注目されているItem_8が、いま探しているItemではないとしてDMRにより判断される。
次に、Item_8の次のオブジェクト(ソート順で次のオブジェクト)であるContainer_Bが注目され、Container_Bを対象としてBrowseが実行される。DMSからDMRに対しては、Browse要求に対する応答として、Container_Bに格納されているItem_9の情報が送信される。このとき、Item_9が注目され、Item_9が、いま探しているItemではないとしてDMRにより判断される。
次に、いま注目したItem_9を格納するContainer_Bの次のオブジェクトであるContainer_Cが注目され、Container_Cを対象としてBrowseが実行される。DMSからDMRに対しては、Browseコマンドに対する応答として、Container_Cに格納されているContainer_F,Item_1,Item_2,Container_Gの情報が送信される。
Container_F,Item_1,Item_2,Container_Gのうちの先頭のオブジェクトであるContainer_Fが注目され、Container_Fを対象としてBrowseが実行される。DMSからDMRに対しては、Browse要求に対する応答として、Container_Fに格納されているItem_10の情報が送信される。Item_10が注目され、Item_10が、いま探しているItemではないとしてDMRにより判断される。
次に、いま注目したItem_10を格納するContainer_Fの次のオブジェクトであるItem_1が注目され、Item_1が、いま探しているItemであるとしてDMRにより判断される。DMRからDMSに対して、Item_1を指定してアイテム取得要求が送信され、アイテム取得要求に対する応答として送信されてきたデータが受信されたとき、DMRによりItem_1が再生される。
Item_1の再生が終了したとき、Item_1の次のオブジェクトであるItem_2が注目される。Item_2が、いま探しているItemであるとしてDMRにより判断された場合、DMRからDMSに対して、Item_2を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータが受信されたとき、DMRによりItem_2が再生される。
この例においては、最初に再生するアイテムとしてPlayContainerUriにより指定されたアイテム(Item_1)の再生が終了した後は、探索により見つかった順にアイテムを再生するものとされている。
Item_2の再生が終了したとき、Item_2の次のオブジェクトであるContainer_Gが注目され、Container_Gを対象としてBrowseが実行される。DMSからDMRに対しては、Browse要求に対する応答として、Container_Gに格納されているItem_3,Item_4の情報が送信される。
DMRからDMSに対して、Item_3を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータが受信されたとき、DMRによりItem_3が再生される。
Item_3の再生が終了したとき、DMRからDMSに対して、Item_4を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータが受信されたとき、DMRによりItem_4が再生される。
Item_4の再生が終了したとき、次に、Item_4を格納するContainer_Gを格納するContainer_Cの次のオブジェクトであるContainer_Dが注目され、Container_Dを対象としてBrowseが実行される。DMSからDMRに対しては、Browse要求に対する応答として、Container_Dに格納されているItem_5の情報が送信される。
DMRからDMSに対して、Item_5を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータが受信されたとき、DMRによりItem_5が再生される。
Item_5の再生が終了したとき、次に、Item_5を格納するContainer_Dの次のオブジェクトであるContainer_Eが注目され、Container_Eを対象としてBrowseが実行される。DMSからDMRに対しては、Browse要求に対する応答として、Container_Eに格納されているItem_6の情報が送信される。
DMRからDMSに対して、Item_6を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータを受信したとき、DMRによりItem_6が再生される。
Item_6の再生が終了したとき、次に、Item_6を格納するContainer_Eの次のオブジェクトであるItem_7が注目され、DMRからDMSに対して、Item_7を指定してアイテム取得要求が送信される。アイテム取得要求に対する応答として送信されてきたデータを受信したとき、DMRによりItem_7が再生される。
再生モードとしてリピート再生などが指定されている場合、探索により既に見つかっているアイテムであるItem_8,Item_9,Item_10が順に再生される。Item_8,Item_9,Item_10のアイテム取得要求は、既に取得され、図示せぬメモリなどに保存されていたそれらのアイテムのObjectIDや位置情報に基づいてアイテムを指定することによって行われる。
ユーザにより選択されたプレイリストに対応するContainer_Aの再生は以上のようにして行われる。
なお、DMSにおいては、RootコンテナであるContainer_Aを起点としてBrowseを実行したときに見つけることができる順に、それぞれのアイテムにTrack_1〜Track_10のトラック番号が割り当てられている。Container_Aに対応するプレイリストのノーマル再生が指示された場合、DMRにより実行されるBrowseにより見つかるItem_8,Item_9,Item_10,Item_1,Item_2,Item_3,Item_4,Item_5,Item_6,Item_7の順に再生される。
実際にアイテムの再生を行うDMRはプレイリスト内のツリー構造を知らないために以上のようにしてアイテムの探索を行う必要がある。また、アイテムの再生を行うためには、ObjectIDや位置情報によってアイテムを指定して、そのデータの送信をDMSに要求する必要がある。
従って、例えば、DMCからトラック番号を指定してアイテムの再生が指示された場合、探索が終了していないと、DMRは、指定されたトラック番号のアイテムを特定できない。
同様に、ランダム再生を行うことも、探索が終了していない段階では、どこを指定してデータの送信を要求して良いのか分からないことから難しい。
ここで、探索により見つかる毎にオブジェクトの情報をDMRに記憶させていくことで、探索が完了した範囲に関して、トラック番号を指定した再生やランダム再生などのノーマル再生以外の再生を可能にすることが考えられる。
しかしながら、オブジェクトの情報を単純に記憶させていくとすると、探索で見つかるアイテムの数が多いときには、オブジェクトの情報を記憶するためのメモリの容量が無視できない量になってしまう。例えば、1つのオブジェクトの情報量が256bytesであるとした場合、1000個のアイテムが存在するときには、それだけで約256kbytesのメモリを消費してしまうことになる。アイテムの種類によっては1000個を遙かに上回る可能性もあり、DMRのメモリの容量が乏しい場合にはこの手法では対応できない。
本発明はこのような状況に鑑みてなされたものであり、アイテムの探索結果を効率的に管理することができるようにするものである。
本発明の一側面の情報処理装置は、DLNA機器である第1の他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行う探索手段と、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する記憶手段とを備える。
前記記憶手段には、BrowseDirectChildrenによって前記先頭アイテムが見つかったときのstartingIndexの値を、前記位置情報として記憶させることができる。
DLNA機器である第2の他の情報処理装置から送信されてきたPlayContainerUriを受信する受信手段をさらに設けることができる。この場合、前記探索手段には、前記PlayContainerUriのcontainer-id-argによってObjectIDが指定される前記ルートコンテナに格納される、first-item-id-argによってObjectIDが指定されるアイテムの親のコンテナからBrowseDirectChildrenを開始させる。
前記ルートコンテナを起点としてBrowseDirectChildrenを繰り返し行った場合に見つかるオブジェクトの順番は決まっており、前記探索手段には、前記first-item-id-argによってObjectIDが指定されるアイテムを格納する前記親のコンテナ以降のそれぞれのコンテナを対象としてBrowseDirectChildrenを行わせ、最後のオブジェクトが見つかったとき、前記ルートコンテナを起点として、前記ルートコンテナ以降のそれぞれのコンテナを対象としてBrowseDirectChildrenを行わせ、前記first-item-id-argによってObjectIDが指定されるアイテムが見つかったとき、探索を終了させることができる。
前記探索手段には、所定のトラック番号のアイテムの再生を行う場合、前記記憶手段に記憶されている情報に基づいて、前記所定のトラック番号のアイテムを格納するコンテナのObjectIDと、前記所定のトラック番号のアイテムのコンテナ内における位置を特定し、特定したObjectIDにより識別されるコンテナ内の、特定した位置にあるオブジェクトの探索を行わせることができる。前記探索手段による探索結果に基づいて、前記所定のトラック番号のアイテムの送信を前記第1の他の情報処理装置に対して要求し、要求に応じて送信されてきたアイテムを再生する再生手段をさらに設けることができる。
本発明の一側面の情報処理方法は、DLNA機器である他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行い、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶するステップを含む。
本発明の一側面のプログラムは、DLNA機器である他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行い、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶するステップを含む処理をコンピュータに実行させる。
本発明の他の側面の通信システムは、DLNA機器である、第1の情報処理装置と、第2の情報処理装置と、第3の情報処理装置とからなる通信システムである。前記第1の情報処理装置は、前記第3の情報処理装置において再生可能なアイテムを記憶する記憶手段と、ルートコンテナを設定し、前記アイテムを前記ルートコンテナに格納して管理するとともに、前記第3の情報処理装置からの探索要求に対して応答する制御手段とを備え、前記第2の情報処理装置は、前記ルートコンテナのObjectIDをcontainer-id-argによって指定するとともに、前記ルートコンテナに格納されるアイテムのうちの最初に再生するアイテムのObjectIDをfirst-item-id-argによって指定するPlayContainerUriを作成する作成手段と、前記作成手段により作成された前記PlayContainerUriを前記第3の情報処理装置に送信する送信手段とを備え、前記第3の情報処理装置は、前記第2の他の情報処理装置から送信されてきた前記PlayContainerUriを受信する受信手段と、前記PlayContainerUriのcontainer-id-argによってObjectIDが指定される前記ルートコンテナに格納される、first-item-id-argによってObjectIDが指定されるアイテムの親のコンテナからBrowseDirectChildrenを開始するように、前記第1の情報処理装置が管理する前記ルートコンテナに格納されるオブジェクトの探索を行う探索手段と、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する記憶手段とを備える。
本発明の一側面においては、DLNA機器である他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索が行われ、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とが、コンテナのObjectIDと対応付けて記憶される。
本発明の他の側面においては、第1の情報処理装置により、第3の情報処理装置において再生可能なアイテムが記憶され、ルートコンテナが設定され、前記アイテムが前記ルートコンテナに格納して管理され、第3の情報処理装置からの探索要求に対して応答することが行われる。また、第2の情報処理装置により、前記ルートコンテナのObjectIDをcontainer-id-argによって指定するとともに、前記ルートコンテナに格納されるアイテムのうちの最初に再生するアイテムのObjectIDをfirst-item-id-argによって指定するPlayContainerUriが作成され、作成された前記PlayContainerUriが前記第3の情報処理装置に送信される。前記第3の情報処理装置により、前記第2の他の情報処理装置から送信されてきた前記PlayContainerUriが受信され、前記PlayContainerUriのcontainer-id-argによってObjectIDが指定される前記ルートコンテナに格納される、first-item-id-argによってObjectIDが指定されるアイテムの親のコンテナからBrowseDirectChildrenを開始するように、前記第1の情報処理装置が管理する前記ルートコンテナに格納されるオブジェクトの探索が行われ、前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とが、コンテナのObjectIDと対応付けて記憶される。
本発明によれば、アイテムの探索結果を効率的に管理することができる。
[通信システムの構成例]
図4は、本発明の一実施形態に係るDLNA機器の構成例を示すブロック図である。
図4は、本発明の一実施形態に係るDLNA機器の構成例を示すブロック図である。
図4の通信システムは、図1を参照して説明したように、DMSとして動作するDLNA機器、DMRとして動作するDLNA機器、およびDMCとして動作するDLNA機器がネットワークを介して接続されることによって構成される。
図4のDMR1は図1のテレビジョン受像機などよりなるDMRに対応し、DMS2は図1のオーディオ機器などよりなるDMSに対応する。また、図4のDMC3は図1の携帯機器などよりなるDMCに対応する。重複する説明については適宜省略する。
図4に示すように、DMR1は、通信部11、制御部12、記憶部13、および再生部14から構成され、DMS2は、通信部21、制御部22、およびコンテンツ記憶部23から構成される。DMC3は、通信部31、制御部32、操作部33、および表示部34から構成される。
DMR1の通信部11は、ネットワークインタフェースなどよりなり、DMS2の通信部21およびDMC3の通信部31とネットワークを介して通信を行う。通信部11により受信された情報は制御部12に供給される。例えば、通信部11は、DMC3の通信部31から送信されてきたPlayContainerUriを受信する。
また、通信部11は、制御部12による制御に従ってBrowse要求をDMS2の通信部21に送信し、Browse要求に対する応答として送信されてきた情報を受信する。通信部11は、アイテム取得要求を送信することに応じてDMS2の通信部21から送信されてきたアイテムを受信し、受信したアイテムを再生部14に出力することなども行う。
制御部12は、CPU(Central Processing Unit)などよりなり、所定のプログラムを実行することによってDMR1の全体の動作を制御する。例えば、制御部12は、アイテムの探索時、Browse要求に対する応答としてDMS2から送信されてきた情報に基づいて、DMS2により管理されているコンテナに関する情報であるコンテナ情報を生成し、記憶部13に記憶させる。
後述するように、コンテナ情報には、アイテムのタイトルやアーティスト名、アイテムの位置情報などは含まれず、コンテナのObjectID、コンテナに格納されているアイテムのトラック番号などが含まれる。
制御部12は、アイテムのランダム再生がDMC3により指示された場合、または、DMC3により指定されたトラック番号のアイテムを再生する場合、記憶部13に記憶させているコンテナ情報に基づいて、再生対象のアイテムが格納されているコンテナを特定する。また、制御部12は、通信部11を制御し、特定したコンテナを探索することによってそのコンテナに格納されているアイテムの情報を取得し、アイテム取得要求をDMS2に送信する。
記憶部13は、フラッシュメモリなどよりなり、制御部12により生成されたコンテナ情報を記憶する。
再生部14は、通信部11から供給されたアイテムを再生し、再生音をスピーカから出力する。
DMS2の通信部21は、DMR1の通信部11およびDMC3の通信部31とネットワークを介して通信を行う。例えば、通信部21は、DMR1の通信部11からBrowse要求が送信されてきた場合、Browse要求を受信して制御部22に出力する。通信部21は、制御部22から供給されたBrowseの実行結果を表す情報をDMR1の通信部11に出力する。
また、通信部21は、DMR1の通信部11から送信されてきたアイテム取得要求を受信して制御部22に出力する。通信部21は、コンテンツ記憶部23から読み出されたアイテムをDMR1の通信部11に送信する。
制御部22は、所定のプログラムを実行することによってDMR1の全体の動作を制御する。例えば、制御部22は、プレイリスト毎にRootコンテナを設定し、プレイリストに登録されているアイテムを、図3に示すようなツリー構造によって管理する。制御部22は、アイテムの探索時にDMR1から送信されてきたBrowse要求に応じて、Browse要求に含まれるパラメータによって指定されたコンテナに格納されているアイテムに関する情報を、通信部21を制御してDMR1に送信する。
コンテンツ記憶部23はアイテムを記憶する。コンテンツ記憶部23に記憶されているアイテムは制御部22により管理され、適宜、読み出される。
DMC3の通信部31は、DMR1の通信部11およびDMS2の通信部21とネットワークを介して通信を行う。例えば、通信部31は、制御部32から供給されたPlayContainerUriをDMR1の通信部11に送信する。
また、通信部31は、DMS2の通信部21に対してBrowse要求を送信し、Browse要求に対する応答としてDMS2の通信部21から送信されてきた情報を受信する。通信部31は、受信した情報を制御部32に出力する。
制御部32は、所定のプログラムを実行することによってDMC3の全体の動作を制御する。例えば、制御部32は、Browse要求に対する応答としてDMS2から送信されてきた情報に基づいてプレイリストの一覧を表示部34に表示し、再生するプレイリストをユーザに選択させる。プレイリストが選択されたとき、制御部32は、PlayContainerUriを生成し、通信部31を制御してDMR1に送信させる。
操作部33は、DMC3の筐体に設けられる十字キーや決定キーに対するユーザの操作を検出し、ユーザの操作の内容を表す情報を制御部32に出力する。
表示部34は、LCD(Liquid Crystal Display)などのディスプレイよりなり、制御部32による制御に従って、プレイリストの一覧を表示する。
図5は、PlayContainerUriを示す図である。
図5の“cds-udn”は、DMSを特定するUDNを表す。“service-id-arg”は、DMSが持つCDSのService IDを表す。CDS(Content Directory Service)は、DMSが管理するアイテムのリストを階層化して配信する機能である。“container-id-arg”は、プレイリストのRootコンテナのObjectIDを表す。DMSが管理するコンテナと、コンテナに格納されているアイテムには、それぞれObjectIDが割り当てられている。
“first-item-id-arg”は、1st Item Trackとして指定するアイテムのObjectIDを表し、“first-item-index-arg”は、1st Item Trackのアイテムのコンテナ内の位置を表す。“sort-arg”はソート条件を表し、“max-depth-arg”は、アイテムの探索時にRootコンテナから辿る階層の深さの上限を表す。
主な記述について説明すると、図5のPlayContainerUriは、“container-id-arg”で指定されるRootコンテナ以下に存在するアイテムのうち、“first-item-id-arg”で指定されたアイテムを起点とし、深さ優先で探索して見つかったアイテムを順に再生することを表す。
[各機器の動作]
図6のフローチャートを参照して、DMR1、DMS2、DMC3のそれぞれの処理について説明する。
図6のフローチャートを参照して、DMR1、DMS2、DMC3のそれぞれの処理について説明する。
図6には、PlayContainerUriをDMR1が受信し、解析するまでの各機器の処理を示している。図6のステップS51乃至S55のDMC3の処理は、図2のステップS1乃至S5の処理に対応し、図6のステップS61,S62のDMS2の処理は、図2のステップS11,S12の処理に対応する。図6のステップS71,S72のDMR1の処理は、図2のステップS21,S22の処理に対応する。
ステップS51において、DMC3の制御部32はBrowseを実行し、通信部31を制御してBrowse要求をDMS2に送信する。
ステップS61において、DMS2の通信部21は、DMC3によるBrowse要求を受信する。
ステップS62において、DMS2の制御部22は、通信部21を制御し、Browse要求に対する応答として、プレイリストとして選択することが可能な、アイテムが格納されているコンテナの情報をDMC3に送信する。
ステップS52において、DMC3の通信部31は、DMS2から送信されてきた情報を受信する。制御部32は、通信部31において受信された情報に基づいてプレイリストの一覧を表示部34に表示し、再生するプレイリストをユーザに選択させる。
ステップS53において、DMC3の制御部32は、操作部33から供給された情報に基づいて再生対象のプレイリスト(Rootコンテナ)を決定する。
ステップS54において、DMC3の制御部32は、ユーザにより選択されたプレイリストに対応するRootコンテナを指定する情報などを含む、図5に示すPlayContainerUriを作成する。
ステップS55において、DMC3の制御部32は、通信部31を制御し、PlayContainerUriをDMR1に送信する。
ステップS71において、DMR1の通信部11は、DMC3の通信部31から送信されてきたPlayContainerUriを受信する。制御部12は、通信部11により受信されたPlayContainerUriを記憶部13などに記憶させる。
ステップS72において、DMR1の制御部12は、PlayContainerUriを解析することによって、アイテムの配信元がDMS2であることや、プレイリストに対応するRootコンテナなどを特定する。
[DMRの探索処理]
次に、図7のフローチャートを参照して、アイテムを探索するDMR1の処理について説明する。
次に、図7のフローチャートを参照して、アイテムを探索するDMR1の処理について説明する。
図7の処理は、DMC3から送信されてきたPlayContainerUriの解析が終了した後に行われる。DMS2においては、図3に示すツリー構造によってアイテムが管理されているものとする。また、PlayContainerUriのcontainer-id-argによって図3のContainer_Aが指定され、first-item-id-argによって、1st Item TrackとしてItem_1が指定されているものとする。PlayContainerUriには、Container_AのObjectIDとItem_1のObjectIDが含まれている。
ステップS101において、DMR1の制御部12は、通信部11を制御するなどしてDMS2と通信を行い、1st Item Track起点探索処理を行う。1st Item Track起点探索処理においては、1st Item Trackとして指定されたItem_1を起点として、アイテムの探索が行われる。
ステップS102において、制御部12は、Rootコンテナ起点探索処理を行う。Rootコンテナ起点探索処理においては、RootコンテナであるContainer_Aを起点として、1st Item Trackとして指定されたItem_1が見つかるまで探索が行われる。
ステップS103において、制御部12は、1st Item Track起点探索処理により得られたコンテナ情報と、Rootコンテナ起点探索処理により得られたコンテナ情報を統合する。コンテナ情報の統合については後述する。
ここで、図8乃至図13のフローチャートを参照して、図7のステップS101において行われる1st Item Track起点探索処理について説明する。
図8のステップS111において、制御部12は、PlayContainerUriのfirst-item-id-argで1st Item Trackとして指定されたアイテムを対象としてBrowseMetaDataを実行する。
ここで、DMR1が行うBrowseには、BrowseMetaDataとBrowseDirectChildrenがある。
BrowseMetaDataは、オブジェクトを指定して、そのオブジェクトの情報をDMR1が取得するためのBrowseである。DMR1からDMS2に送信されるBrowseMetaDataのコマンドにはObjectIDが含まれており、BrowseMetaDataのコマンドを受信したDMS2は、ObjectIDにより指定されたオブジェクトの情報をDMR1に対して送信する。DMS2から送信されるオブジェクトの情報には、ObjectIDにより指定されたオブジェクトを格納するコンテナ(親のコンテナ)のObjectIDであるparentIDなどが含まれる。
BrowseDirectChildrenは、コンテナを指定して、そのコンテナに格納されているオブジェクト(子のオブジェクト)の情報をDMR1が取得するためのBrowseである。DMR1からDMS2に送信されるBrowseDirectChildrenのコマンドにはObjectIDが含まれており、BrowseDirectChildrenのコマンドを受信したDMS2は、ObjectIDにより指定されたコンテナに格納されているコンテナやアイテムのObjectID、アイテムのURLなどの情報をDMR1に送信する。
この例においては、BrowseMetaDataが実行されることにより、1st Item Trackとして指定されたItem_1の親のコンテナであるContainer_CのObjectIDがparentIDとして取得される。
ステップS112において、制御部12は、1st Item Trackとして指定されたアイテムの親のコンテナを対象とするBrowseDirectChildrenの準備を行う。BrowseDirectChildrenの準備として、BrowseDirectChildrenのパラメータであるRequestCountの値として1、startingIndexの値として、PlayContainerUriで指定されたfirst-item-index-argの値を設定することが行われる。
RequestCountは、BrowseDirectChildrenに対する応答として情報を返すオブジェクトの数を指定するパラメータである。例えば、RequestCountの値が1であることは、startingIndexで指定された位置にある1つのオブジェクトの情報の送信を要求することを表す。
startingIndexは、情報の送信を要求するオブジェクトの位置を表すパラメータである。例えば、startingIndexの値が0であることは、BrowseDirectChildrenの対象となるコンテナに格納されている最初(ソート順で最初)のアイテムの位置を表す。
DMC3から送信されてきたPlayContainerUriには、Container_CにおけるItem_1の位置を表す情報としてfirst-item-index-arg=1が設定されている。first-item-index-argの値が1であることは、Container_Cを対象としてBrowseDirectChildrenを実行したときに最初に見つかるオブジェクトであるContainer_Fの位置をstartingIndex=0で表される位置として、1st Item TrackであるItem_1が、その次の位置にあることを表す。
すなわち、制御部12は、RequestCountの値として1、startingIndexの値として1を、Container_Cを対象とするBrowseDirectChildrenのパラメータとして設定する。Container_Cを対象とすることは、Container_CのObjectIDにより指定される。
ステップS113において、制御部12はカウンタの値を1に初期化する。制御部12は、記憶部13に記憶させておくなどして、探索により見つかったアイテムの数を表すカウンタを管理している。その後、処理はコンテナ探索0に進む。
次に、図9のフローチャートを参照して、コンテナ探索0について説明する。
ステップS121において、制御部12は、BrowseDirectChildrenを実行する。
例えば、図8のステップS112において準備が行われた後に、Container_Cを対象とするBrowseDirectChildrenがステップS121において行われた場合、それに対する応答として、DMS2からは、Container_Cに格納され、startingIndex=1により指定される1つのオブジェクトであるItem_1の情報が送信されてくる。Item_1の情報には、Item_1のObjectIDが含まれる。
なお、1st Item Track起点探索処理、Rootコンテナ起点探索処理で実行されるBrowseDirectChildrenにおいては、RequestCountの値として常に1が設定される。すなわち、DMS2により管理されているオブジェクトの情報が、1つずつ、BrowseDirectChildrenが行われる毎にDMR1により取得されることになる。
また、startingIndexの値として、1st Item Trackで指定されたアイテムの親のコンテナに対してBrowseDirectChildrenを実行する場合を除いて、初期値として0が設定され、その後、同じコンテナを対象としてBrowseDirectChildrenを実行する毎に1を加算した値が設定される。すなわち、BrowseDirectChildrenの対象となるコンテナに格納されているオブジェクトの情報が、先頭のものから順に、1つずつ、BrowseDirectChildrenが行われる毎にDMR1により取得されることになる。
ステップS122において、制御部12は、アイテムが見つかったか否かを判定する。
アイテムが見つかったとステップS122において判定した場合、ステップS123において、制御部12は、コンテナ情報作成処理を行う。
ステップS124において、制御部12は、現在のコンテナ(現在探索対象としているコンテナ)を対象とするBrowseDirectChildrenのstartingIndexの値として、それまでの値に1を加算した値を設定する。
startingIndexの値が更新された後、ステップS121に戻り、同じコンテナを対象としてBrowseDirectChildrenが実行される。同じコンテナを対象としてBrowseDirectChildrenが繰り返し行われることにより、現在のコンテナに直接格納されている全てのアイテムが見つかることになる。
一方、アイテムが見つかっていないとステップS122において判定した場合、ステップS125において、制御部12は、ステップS121で実行したBrowseDirectChildrenによってコンテナが見つかったか否かを判定する。
コンテナが見つかったとステップS125において判定した場合、ステップS126において、制御部12は、現在のコンテナのObjectIDと、現在のstartingIndexの値をスタックに格納する。スタック用のメモリ領域も例えば記憶部13に確保されている。
ステップS127において、制御部12は、ステップS121のBrowseDirectChildrenによって見つかったコンテナを、次の探索の対象として選択する。その後、処理はコンテナ探索1に進む。
一方、ステップS125においてコンテナが見つかっていないと判定した場合、ステップS128において、制御部12は、現在のコンテナがRootコンテナであるか否かを判定する。現在のコンテナがRootコンテナであるか否かは、例えば、BrowseDirectChildrenによって得られたコンテナのObjectIDが、DMC3から送信されてきたPlayContainerUriのcontainer-id-argで指定されるObjectIDと同じであるか否かに基づいて判定される。
現在のコンテナがRootコンテナではないとステップS128において判定した場合、制御部12はコンテナ探索2を行う。
一方、現在のコンテナがRootコンテナであるとステップS128において判定した場合、制御部12は、1st Item Track起点探索処理を終了し、図7のステップS101以降の処理を行う。
次に、図10のフローチャートを参照して、図9のステップS123において行われるコンテナ情報作成処理について説明する。
図10の処理は、ステップS121において行われたBrowseDirectChildrenによってアイテムが見つかる毎に行われる。
ステップS141において、制御部12は、現在のコンテナからアイテムが見つかったのは初めてか否かを判定する。例えば、現在のコンテナがContainer_Cであり、BrowseDirectChildrenによって見つかったアイテムが、先頭のアイテムであるItem_1である場合、現在のコンテナからアイテムが見つかったのが初めてであるとして判定される。
現在のコンテナからアイテムが見つかったのが初めてであるとステップS141において判定した場合、ステップS142において、制御部12は、StartingIndex,Start Track No,End Track No,1st Item Track No,ContainerIDを格納するメモリ領域を記憶部13に確保する。これらの情報は、コンテナ情報に含まれる情報である。
StartingIndexは、ContainerIDにより指定されるコンテナを対象としてBrowseDirectChildrenを行うときに、startingIndexの値としてどの値を指定すれば、そのコンテナに格納されている最初のアイテム(Start Track Noで指定されるアイテム)が見つかるのかを表す。あるコンテナを対象とするBrowseDirectChildrenによって最初にアイテムが見つかったときのstartingIndexの値が、StartingIndexとして制御部12により登録される。
Start Track Noは、ContainerIDにより指定されるコンテナに格納されるアイテムのうちの最初のアイテムのトラック番号を表す。1st Item Track起点探索処理においては、見つかったアイテムの順に、トラック番号として仮の番号が割り当てられる。あるコンテナを対象とするBrowseDirectChildrenによって最初に見つかったアイテムのトラック番号がStart Track Noとして制御部12により登録される。
End Track Noは、ContainerIDにより指定されるコンテナに格納されるアイテムのうちの最後のアイテムのトラック番号を表す。あるコンテナを対象とするBrowseDirectChildrenによって最後に見つかったアイテムのトラック番号がEnd Track Noとして制御部12により登録される。
1st Item Track Noは、PlayContainerUriのfirst-item-id-argによって1st Item Trackとして指定されたアイテムが、ContainerIDにより指定されるコンテナに格納されるものある場合に、その1st Item Trackのアイテムのトラック番号を表す。1st Item Trackとして指定されたアイテムが格納されていないコンテナの情報には、1st Item Track Noの値として0が登録される。
ContainerIDは、それに対応付けられて記憶されるStartingIndex,Start Track No,End Track No,1st Item Track Noの各情報が、どのコンテナに関する情報であるのかを表す。ContainerIDには、コンテナのObjectIDが登録される。
ステップS143において、制御部12は、StartingIndexの値として、現在のstartingIndexの値を登録し、Start Track Noの値として、現在のカウンタ値を登録する。また、制御部12は、ContainerIDとして、BrowseDirectChildrenで利用したObjectID(現在のコンテナのObjectID)を登録する。
現在のコンテナからアイテムが見つかったのが初めてではないとステップS141において判定された場合、ステップS142,S143の処理はスキップされる。
ステップS144において、制御部12は、End Track Noの値として、現在のカウンタ値を登録する。現在のコンテナの情報として、End Track Noの値が既に登録されている場合、そのEnd Track Noの値は現在のカウンタ値によって更新される。
ステップS145において、制御部12は、見つかったアイテムがPlayContainerUriのfirst-item-id-argで指定されたアイテムと同じであるか否かを判定する。
見つかったアイテムがPlayContainerUriのfirst-item-id-argで指定されたアイテムと同じであるとステップS145において判定した場合、制御部12は、ステップS146において、1st Item Track Noの値として現在のカウンタ値を登録する。
1st Item Track Noの値を登録した後、または、見つかったアイテムがPlayContainerUriのfirst-item-id-argで指定されたアイテムではないとステップS145において判定された場合、ステップS147において、制御部12は、カウンタの値に1を加算する。
カウンタの値が更新された後、図9のステップS123に戻り、それ以降の処理が行われる。
次に、図11のフローチャートを参照して、図9のステップS127の処理に続けて行われるコンテナ探索1について説明する。
コンテナ探索1は、直前に実行したBrowseDirectChildrenによってコンテナが見つかった場合、その見つかったコンテナを対象として行われる。
ステップS161において、制御部12は、startingIndexの値を0に初期化し、現在のコンテナ(直前に実行したBrowseDirectChildrenによって見つかったコンテナ)を対象とするBrowseDirectChildrenの準備を行う。
ステップS162において、制御部12は、現在のコンテナを対象としてBrowseDirectChildrenを実行する。その後、図9のコンテナ探索0のステップS122以降の処理が行われる。
次に、図12のフローチャートを参照して、現在のコンテナがRootコンテナではないと図9のステップS128において判定された場合に、コンテナ探索0に続けて行われるコンテナ探索2について説明する。
ステップS171において、制御部12は、スタックにデータが格納されているか否かを判定する。ここでは、コンテナ探索2が開始される前に図9のステップS126の処理、または、後述する図13のステップS188の処理が行われている場合、スタックにデータが格納されているとして判定されることになる。
スタックにデータが格納されていないとステップS171において判定された場合、処理はコンテナ探索3に進む。
一方、スタックにデータが格納されているとステップS171において判定した場合、ステップS172において、制御部12は、スタックに格納しておいたObjectIDとstartingIndexの値を取り出す。取り出されたObjectIDとstartingIndexの値はスタックから消去される。
ステップS173において、スタックから取り出したObjectIDにより指定されるコンテナを対象としてBrowseDirectChildrenを実行する。その際、制御部12は、startingIndexの値として、スタックから取り出したstartingIndexの値に1を加算した値を用いる。その後、図9のコンテナ探索0のステップS122以降の処理が行われる。
次に、図13のフローチャートを参照して、図12のステップS171においてスタックにデータが格納されていないと判定された場合に行われるコンテナ探索3について説明する。
ステップS181において、制御部12は、現在のコンテナのObjectIDを調べる。ここでは、現在のコンテナのObjectIDをαとする。
ステップS182において、制御部12は、ステップS181で調べたObjectIDを用いて現在のコンテナを対象としてBrowseMetaDataを実行し、現在のコンテナの親のコンテナのObjectIDであるparentIDを取得する。
ステップS183において、制御部12は、startingIndexの値として0を設定し、parentIDで指定されるコンテナを対象とするBrowseDirectChildrenの準備を行う。
ステップS184において、制御部12は、BrowseDirectChildrenを実行する。
ステップS185において、制御部12は、BrowseDirectChildrenの実行結果に基づいて、αで指定される、ステップS182でBrowseMetaDataを実行したコンテナが見つかったか否かを判定する。
ステップS182でBrowseMetaDataを実行したコンテナが見つかっていないとステップS185において判定した場合、ステップS186において、制御部12は、現在のコンテナ(ステップS182で取得したparentIDで指定されるコンテナ)を対象とするBrowseDirectChildrenのstartingIndexの値として、それまでの値に1を加算した値を設定する。
startingIndexの値が更新された後、ステップS184に戻り、同じコンテナを対象としてBrowseDirectChildrenが実行される。
ステップS182でBrowseMetaDataを実行したコンテナが見つかったとステップS185において判定した場合、ステップS187において、制御部12は、現在のstartingIndexの値に1を加算する。
ステップS188において、制御部12は、現在探索していたコンテナのObjectIDとstartingIndexの値をスタックに格納する。その後、処理はコンテナ探索0に進む。
ここで、図3のツリー構造を対象として以上の探索を行った場合の処理の流れを具体的に説明する。
はじめに、PlayContainerUriのfirst-item-id-argによって1st Item Trackとして指定されたItem_1を対象としてBrowseMetaDataが実行される(図8のステップS111)。Item_1を対象としたBrowseMetaDataにより、親のコンテナであるContainer_CのObjectIDが取得される。
次に、取得されたObjectIDを用いて、Container_Cを対象としてBrowseDirectChildrenが実行される(図9のステップS121)。Container_Cを対象とする1回目のBrowseDirectChildrenのstartingIndexの値は、PlayContainerUriで指定されたfirst-item-index-argの値と同じ1である。
Container_Cを対象とする1回目のBrowseDirectChildrenによりItem_1が見つかり、それに応じてコンテナ情報作成処理が行われる(図9のステップS123)。コンテナ情報作成処理により、Container_Cの情報として、StartingIndex=1、Start Track No=1、ContainerID=Container_CのObjectIDが、それぞれ登録される(図10のステップS143)。また、1st Item Track No=1が登録される(図10のステップS146)。
startingIndexの値は図8のステップS124において2となる。Container_Cを対象とする2回目のBrowseDirectChildrenによりItem_2が見つかり、それに応じて、コンテナ情報作成処理が行われる(図9のステップS123)。コンテナ情報作成処理により、Container_Cの情報として、End Track No=2が登録される(図10のステップS144)。
この時点で記憶部13に記憶されるコンテナ情報を図14に示す。図14に示すように、Container_Cの情報として、StartingIndex=1、Start Track No=1、End Track No=2、1st Item Track No=1が、Container_CのObjectIDと対応付けて記憶される。
このように、DMR1においては、あるコンテナを対象とした探索結果を表す情報として、アイテムの再生時に、そのコンテナを対象としてどのような値をパラメータとして設定してBrowseDirectChildrenを行えばアイテムの情報を取得することができるのかを表す情報が記憶される。
すなわち、Container_Cを再生する場合、制御部12は、コンテナ情報を参照することによって、Container_CのObjectIDを特定することが可能になる。
また、制御部12は、特定したObjectIDに基づいてContainer_Cを指定するとともに、startingIndex=1を指定するBrowseDirectChildrenを実行することによって、仮のトラック番号でいうTrack_1のアイテムの情報を取得することが可能になる。制御部12は、取得した情報(ObjectID、URL等)に基づいてアイテム取得要求を行うことによって、Track_1のアイテムを取得し、再生することができる。
さらに、制御部12は、特定したObjectIDに基づいてContainer_Cを指定するとともに、startingIndex=2を指定するBrowseDirectChildrenを実行することによって、仮のトラック番号でいうTrack_2のアイテムの情報を取得することが可能になる。制御部12は、取得した情報に基づいてアイテム取得要求を行うことによって、Track_2のアイテムを取得し、再生することができる。
また、制御部12は、Container_Cに格納されているアイテムが、Track_1のアイテムからTrack_2のアイテムまでであることをコンテナ情報から特定することができる。また、制御部12は、”End Track No” - “Start Track No” + 1の計算結果から、Container_C には再生対象のアイテムが2個あることも特定することができる。制御部12は、1st Item Track No に1が設定されていることから、PlayContainerUriで指定された、最初に再生すべきアイテムがContainer_Cにあることを特定することができる。
これにより、BrowseDirectChildrenによって取得された情報を全て記憶しておく場合に較べて、DMS2から取得可能なアイテムの情報を記憶しておくために必要なメモリの容量を減らすことが可能になる。
図3のツリー構造の探索の説明に戻り、startingIndexの値は図8のステップS124において3となり、Container_Cを対象とする3回目のBrowseDirectChildrenによりContainer_Gが見つかる。
Container_Cの情報がスタックに格納された後(図9のステップS126)、Container_Gが、次の探索対象のコンテナとして選択される(図9のステップS127)。Container_Gの探索に移る前にContainer_Cの情報をスタックに格納しておく理由は、Container_Gの探索が終わった後、Container_Cに戻り、Container_Cを対象として既に探索を行った位置の続きから探索を再開できるようにするためである。
Container_Gを対象としてコンテナ探索1が行われ(図11)、続けて、コンテナ探索0のステップS122以降の処理が行われることによって、Item_3とItem_4が見つかる。それぞれのアイテムが見つかる毎にコンテナ情報作成処理が行われることによって、記憶部13には、Container_Gの情報としてItem_3とItem_4の情報が記憶される。
この時点で記憶部13に記憶されるコンテナ情報を図15に示す。図15に示すように、Container_Cの情報に追加して、StartingIndex=0、Start Track No=3、End Track No=4、1st Item Track No=0がContainer_GのObjectIDと対応付けて記憶される。図15のコンテナ情報は、Container_Cに格納されているアイテムを再生した後、再生対象がContainer_Gに格納されているアイテムに移ることを表す。
Container_Gを対象とする2回のBrowseDirectChildrenによってItem_3とItem_4が見つかった後に行われる、Container_Gを対象とする3回目のBrowseDirectChildren(図9のステップS121)によっては、アイテムもコンテナも見つからない。この場合、現在のコンテナであるContainer_GはRootコンテナではないから、図9のステップS128の判定を経て、処理はコンテナ探索0から、図12のコンテナ探索2に進む。
探索対象がContainer_CからContainer_Gに移る前にContainer_Cの情報がスタックに格納されているから、コンテナ探索2においては、スタックに格納されている情報に基づいて、Container_Cを対象としてBrowseDirectChildrenが実行される(図12のステップS173)。ここで行われるBrowseDirectChildrenは、既に探索が終了しているContainer_Gの次の位置にあるオブジェクトを探索するものである。その後、処理はコンテナ探索0のステップS122以降に進む。
Container_Cを対象とするBrowseDirectChildrenによってはオブジェクトが見つからないから、処理はコンテナ探索0からコンテナ探索2に進む。2回目のコンテナ探索2においては、スタックにはContainer_Cの情報が格納されていないから、ステップS171の判定を経て、処理はコンテナ探索2からコンテナ探索3に進む。
コンテナ探索3においては、Container_Cに対してBrowseMetaDataが実行され、親のコンテナであるContainer_AのObjectIDが取得される(図13のステップS182)。また、Container_Aを対象として、Container_Cが見つかるまで、BrowseDirectChildrenが繰り返される(図13のステップS184)。
Container_Aを対象とする3回目のBrowseDirectChildrenによってContainer_Cが見つかり、このとき、startingIndexの値に1が加算され(図13のステップS187)、Container_Aの情報がスタックに格納された後(図13のステップS188)、処理はコンテナ探索3からコンテナ探索0に進む。
その後、Container_Dを対象としてBrowseDirectChildrenが実行され、Item_5が見つかることに応じてコンテナ情報作成処理が行われる。また、Container_Eを対象としてBrowseDirectChildrenが実行され、Item_6が見つかることに応じてコンテナ情報作成処理が行われる。
Container_Aを対象としてBrowseDirectChildrenが実行され、Item_7が見つかることに応じてコンテナ情報作成処理が行われた後、図9のステップS128の処理を経て、1st Item Track起点探索処理が終了する。
以上のように、1st Item Track起点探索処理においては、Item_1を起点として、Item_1とともに同じContainer_Cに格納されるItem_2、Container_Gに格納されるItem_3、Item_3とともに同じContainer_Gに格納されるItem_4、Container_Dに格納されるItem_5、Container_Eに格納されるItem_6、Container_Aに格納されるItem_7の順に各アイテムが見つかる。
1st Item Track起点探索処理が終了したとき、記憶部13には、図16に示すコンテナ情報が記憶される。
図16に示すように、コンテナ情報には、見つかったアイテムを格納するコンテナの順に、Container_C、Container_G、Container_D、Container_E、Container_Aの各コンテナの情報が登録される。
ただし、このままでは、PlayContainerUriで指定されたDMS2が管理するアイテムの全ての探索結果を取得したことにならない。図7を参照して説明したように、1st Item Track起点探索処理が終了したとき、Rootコンテナ起点探索処理が行われる。
Rootコンテナ起点探索処理においては、RootコンテナであるContainer_Aを起点として、1st Item Trackとして指定されたItem_1が見つかるまで探索が行われる。Rootコンテナ起点探索処理も、探索の起点が異なる点と、Item_1が見つかったときに処理が終了される点を除いて、基本的に、1st Item Track起点探索処理と同様の処理である。
図17のフローチャートを参照して、図7のステップS102において行われるRootコンテナ起点探索処理について説明する。
ステップS201において、制御部12は、startingIndex=0を設定し、RootコンテナであるContainer_Aに対するBrowseDirectChildrenの準備を行う。
ステップS202において、制御部12は、カウンタの値を1に初期化する。
その後、処理はコンテナ探索0に進み、上述した処理と同様の処理が行われる。すなわち、Rootコンテナ起点探索処理においては、Container_Aに格納されるItem_8、Container_Bに格納されるItem_9、Container_Fに格納されるItem_10が見つかる。Item_10が見つかった後、Container_Cに格納されるItem_1が見つかるから、そのときにRootコンテナ起点探索処理は終了する。
Rootコンテナ起点探索処理のBrowseDirectChildrenによって見つかったアイテムが1st Item Trackとして指定されたItem_1と同じアイテムであるか否かは、BrowseDirectChildrenによって得られたアイテムのObjectIDが、DMC3から送信されてきたPlayContainerUriのfirst-item-id-argで指定されるObjectIDと同じであるか否かに基づいて判定される。Rootコンテナ起点探索処理において、Container_Cを対象とし、startingIndexの値を1としてBrowseDirectChildrenを行ったときに得られるObjectIDは、PlayContainerUriのfirst-item-id-argで指定されるObjectIDと同じものとなる。このとき、Rootコンテナ起点探索処理は終了する。
Rootコンテナ起点探索処理が終了したとき、記憶部13には、図18に示すコンテナ情報が記憶される。
図18に示すように、コンテナ情報には、Rootコンテナ起点探索処理によって見つかったアイテムを格納するコンテナの順に、Container_A、Container_B、Container_F、Container_Cの各コンテナの情報が登録される。
上述したように、DMS2においては、RootコンテナであるContainer_Aを起点としてBrowseを実行したときに見つけることができる順に、それぞれのアイテムにトラック番号が割り当てられている。
Rootコンテナ起点探索処理においても、見つかった順に各アイテムにトラック番号が制御部12により割り当てられるが、各アイテムに割り当てられたトラック番号は、仮の番号ではなく、DMS2により割り当てられているトラック番号と同じ、正式な番号である。図18のStart Track No、End Track No、1st Item Track Noは、正式なトラック番号である。
図7を参照して説明したように、Rootコンテナ起点探索処理が終了したとき、1st Item Track起点探索処理によって得られたコンテナ情報と、Rootコンテナ起点探索処理によって得られたコンテナ情報の統合が行われる(ステップS103)。
図19は、1st Item Track起点探索処理によって得られた図16のコンテナ情報と、Rootコンテナ起点探索処理によって得られた図18のコンテナ情報を統合したコンテナ情報の例を示す図である。
Rootコンテナ起点探索処理において各アイテムに割り当てられたトラック番号は正式な番号であるから、図19に示すように、Rootコンテナ起点探索処理によって得られた図18の情報に続けて、1st Item Track起点探索処理によって得られた図16の情報を加えるようにしてコンテナ情報の統合が行われる。
1st Item Track起点探索処理によって得られたコンテナ情報に含まれる各アイテムのトラック番号は、PlayContainerUriによって1st Itemとして指定されたItem_1の仮のトラック番号1を基準とする相対値である。Item_1の正式なトラック番号は4であるから、コンテナ情報の統合時、1st Item Track起点探索処理によって得られたコンテナ情報に含まれる各アイテムのトラック番号は、Item_1の正式なトラック番号である4を基準として、相対的に同じ数だけ差があるように書き換えられる。すなわち、図16のコンテナ情報に含まれるトラック番号は、図19のContainer_Cの行以降に示すように、3(4-1)ずつ増えるように書き換えられる。
これにより、PlayContainerUriで指定された、DMS2が管理するContainer_Aに格納されるアイテムの全ての探索結果を取得したことになる。
以上のように、DMS2が管理するツリー構造全体を把握するための情報として、各コンテナの情報のみを記憶するようにしたため、メモリの使用量を抑えることができる。例えば、1つのコンテナに10個のアイテムが格納されており、そのようなコンテナが1000個ある場合、アイテムの情報を個々に全て記憶しておくとした場合には10000個のアイテムの情報を格納しておく分のメモリ領域が必要になるが、以上の方法によれば10分の1の領域で済む。
また、ツリー構造全体の情報を記憶しておくことになるため、トラック番号を指定しての再生やランダム再生がDMC3から指示された場合であっても、その指示に応じた処理を行うことが可能になる。
[DMRの再生処理]
次に、図20のフローチャートを参照して、DMR1の再生処理について説明する。
次に、図20のフローチャートを参照して、DMR1の再生処理について説明する。
図20の処理は、DMS2が管理するアイテムの全ての探索結果が以上の処理によって取得された状態で、例えば、DMC3から、所定のアイテムの再生が指示されたときに開始される。DMC3からは、トラック番号を指定してアイテムの再生が指示される。
ステップS211において、制御部12は、DMC3により再生が指示されたトラック番号が割り当てられたアイテムを格納するコンテナの情報をコンテナ情報から読み出す。例えば、図19のコンテナ情報が記憶部13に記憶されている場合において、トラック番号9のアイテムを再生することが指示されたとき、トラック番号として9が割り当てられたアイテムを格納するContainer_EのObjectIDと、StartingIndex=0が読み出される。
ステップS212において、制御部12は、再生が指示されたトラック番号が割り当てられたアイテムを格納するコンテナを対象としてBrowseDirectChildrenを実行する。StartingIndexの値にはステップS211で読み出された値が用いられる。BrowseDirectChildrenに対する応答として、DMS2からは、再生が指示されたアイテムのObjectID、URLなどの詳細情報が送信されてくる。
ステップS213において、制御部12は、ObjectIDやURLを用いるなどして再生対象のアイテムを指定し、DMS2に対してアイテムの送信を要求する。ここで行われる要求に対する応答として、DMS2からは、コンテンツ記憶部23に記憶されているアイテムのデータが送信されてくる。DMS2から送信されてきたアイテムのデータは通信部11により受信され、再生部14に供給される。
ステップS214において、再生部14は、通信部11から供給されたアイテムを再生する。
トラック番号を指定して再生が指示された場合、その再生処理は以上のようにして行われる。図20の再生処理は、トラック番号を指定して再生が指示された場合だけでなく、ランダム再生がDMC3により指示された場合にも適用可能である。
ランダム再生を行う場合、制御部12は、まず、コンテナ情報に登録されているContainer_IDの中から、1つのContainer_IDをランダムに選択する。次に、制御部12は、選択したContainer_IDに対応付けて記憶されている、同じ行のStart Track NoとEnd Track Noで表される範囲のトラック番号の中から、1つのトラック番号をランダムに選択する。
トラック番号を選択し終えたとき、制御部12は、startingIndexをコンテナ情報のStartingIndexの値に基づいて決定し、Container_IDで特定されるコンテナに対してBrowseDirectChildrenを行う。これにより、制御部12は再生すべきアイテムの情報を得ることができる。
なお、アイテムをランダムに選択する手法として、図19のコンテナ情報から最大Track番号が分かるので、その範囲で乱数を生成し、得られた番号とコンテナ情報を照らし合わせることで、どこのコンテナの何番目の位置に、得られたトラック番号のアイテムがあるのかを選択する方法もある。
[コンピュータの構成例]
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103は、バス104により相互に接続されている。
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、キーボード、マウスなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107が接続される。また、入出力インタフェース105には、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、リムーバブルメディア111を駆動するドライブ110が接続される。
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを入出力インタフェース105及びバス104を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。
CPU101が実行するプログラムは、例えばリムーバブルメディア111に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部108にインストールされる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 DMR, 2 DMS, 3 DMC, 11 通信部, 12 制御部, 13 記憶部, 14 再生部, 21 通信部, 22 制御部, 23 コンテンツ記憶部, 31 通信部, 32 制御部, 33 操作部, 34 表示部
Claims (8)
- DLNA機器である第1の他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行う探索手段と、
前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する記憶手段と
を備える情報処理装置。 - 前記記憶手段は、BrowseDirectChildrenによって前記先頭アイテムが見つかったときのstartingIndexの値を、前記位置情報として記憶する
請求項1に記載の情報処理装置。 - DLNA機器である第2の他の情報処理装置から送信されてきたPlayContainerUriを受信する受信手段をさらに備え、
前記探索手段は、前記PlayContainerUriのcontainer-id-argによってObjectIDが指定される前記ルートコンテナに格納される、first-item-id-argによってObjectIDが指定されるアイテムの親のコンテナからBrowseDirectChildrenを開始する
請求項2に記載の情報処理装置。 - 前記ルートコンテナを起点としてBrowseDirectChildrenを繰り返し行った場合に見つかるオブジェクトの順番は決まっており、
前記探索手段は、前記first-item-id-argによってObjectIDが指定されるアイテムを格納する前記親のコンテナ以降のそれぞれのコンテナを対象としてBrowseDirectChildrenを行い、最後のオブジェクトが見つかったとき、前記ルートコンテナを起点として、前記ルートコンテナ以降のそれぞれのコンテナを対象としてBrowseDirectChildrenを行い、前記first-item-id-argによってObjectIDが指定されるアイテムが見つかったとき、探索を終了する
請求項3に記載の情報処理装置。 - 前記探索手段は、所定のトラック番号のアイテムの再生を行う場合、前記記憶手段に記憶されている情報に基づいて、前記所定のトラック番号のアイテムを格納するコンテナのObjectIDと、前記所定のトラック番号のアイテムのコンテナ内における位置を特定し、特定したObjectIDにより識別されるコンテナ内の、特定した位置にあるオブジェクトの探索を行い、
前記探索手段による探索結果に基づいて、前記所定のトラック番号のアイテムの送信を前記第1の他の情報処理装置に対して要求し、要求に応じて送信されてきたアイテムを再生する再生手段をさらに備える
請求項1に記載の情報処理装置。 - DLNA機器である他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行い、
前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する
ステップを含む情報処理方法。 - DLNA機器である他の情報処理装置が管理するルートコンテナに格納されるオブジェクトの探索を行い、
前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する
ステップを含む処理をコンピュータに実行させるプログラム。 - DLNA機器である、第1の情報処理装置と、第2の情報処理装置と、第3の情報処理装置とからなる通信システムにおいて、
前記第1の情報処理装置は、
前記第3の情報処理装置において再生可能なアイテムを記憶する記憶手段と、
ルートコンテナを設定し、前記アイテムを前記ルートコンテナに格納して管理するとともに、前記第3の情報処理装置からの探索要求に対して応答する制御手段と
を備え、
前記第2の情報処理装置は、
前記ルートコンテナのObjectIDをcontainer-id-argによって指定するとともに、前記ルートコンテナに格納されるアイテムのうちの最初に再生するアイテムのObjectIDをfirst-item-id-argによって指定するPlayContainerUriを作成する作成手段と、
前記作成手段により作成された前記PlayContainerUriを前記第3の情報処理装置に送信する送信手段と
を備え、
前記第3の情報処理装置は、
前記第2の他の情報処理装置から送信されてきた前記PlayContainerUriを受信する受信手段と、
前記PlayContainerUriのcontainer-id-argによってObjectIDが指定される前記ルートコンテナに格納される、first-item-id-argによってObjectIDが指定されるアイテムの親のコンテナからBrowseDirectChildrenを開始するように、前記第1の情報処理装置が管理する前記ルートコンテナに格納されるオブジェクトの探索を行う探索手段と、
前記ルートコンテナに格納されるオブジェクトの探索結果を表す情報として、前記ルートコンテナに格納されるコンテナ毎に、そのコンテナを対象とする探索により最初に見つかるアイテムである先頭アイテムのトラック番号と、最後に見つかるアイテムである最終アイテムのトラック番号と、前記先頭アイテムのコンテナ内における位置を表す位置情報とを、コンテナのObjectIDと対応付けて記憶する記憶手段と
を備える
通信システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010155719A JP2012018564A (ja) | 2010-07-08 | 2010-07-08 | 通信システム、情報処理装置、情報処理方法、およびプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010155719A JP2012018564A (ja) | 2010-07-08 | 2010-07-08 | 通信システム、情報処理装置、情報処理方法、およびプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2012018564A true JP2012018564A (ja) | 2012-01-26 |
Family
ID=45603765
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010155719A Withdrawn JP2012018564A (ja) | 2010-07-08 | 2010-07-08 | 通信システム、情報処理装置、情報処理方法、およびプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2012018564A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018051477A1 (ja) * | 2016-09-16 | 2018-03-22 | ヤマハ株式会社 | 情報処理装置、スマートフォン、再生装置、プログラムおよび情報処理方法 |
-
2010
- 2010-07-08 JP JP2010155719A patent/JP2012018564A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018051477A1 (ja) * | 2016-09-16 | 2018-03-22 | ヤマハ株式会社 | 情報処理装置、スマートフォン、再生装置、プログラムおよび情報処理方法 |
| JPWO2018051477A1 (ja) * | 2016-09-16 | 2019-02-21 | ヤマハ株式会社 | 情報処理装置、スマートフォン、再生装置、プログラムおよび情報処理方法 |
| US10802789B2 (en) | 2016-09-16 | 2020-10-13 | Yamaha Corporation | Information processing device, reproducing device, and information processing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4944919B2 (ja) | メディアファイルの自動選択 | |
| JP4214475B2 (ja) | 情報処理装置および方法、並びにプログラム | |
| US8176118B2 (en) | Server device, client device, information processing system, information processing method, and program | |
| US8914389B2 (en) | Information processing device, information processing method, and program | |
| US8996412B2 (en) | Information processing system and information processing method | |
| JP4367662B2 (ja) | 情報処理システム、端末装置、情報処理方法、プログラム | |
| US20120116558A1 (en) | Augmenting media content in a media sharing group | |
| JP2009176060A (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
| KR20060002868A (ko) | 정보 처리 장치, 및 정보 처리 방법, 및 컴퓨터 프로그램 | |
| EP1742222B1 (en) | Reproducing apparatus and reproducing method. | |
| CN103327376A (zh) | 音乐视频服务器及其音乐视频个性化设置方法 | |
| JP4349313B2 (ja) | 再生装置,再生制御方法およびプログラム | |
| JP4419879B2 (ja) | 情報処理システム | |
| JP5141195B2 (ja) | 情報処理装置、楽曲配信システム、楽曲配信方法およびコンピュータプログラム | |
| CN101128880A (zh) | 基于通用内容id检索用于播放列表的内容项目 | |
| JP5652065B2 (ja) | コンテンツ再生システム、制御装置及び再生装置 | |
| JP2012018564A (ja) | 通信システム、情報処理装置、情報処理方法、およびプログラム | |
| JP4363117B2 (ja) | コンテンツ再生装置、コンテンツ管理装置、コンテンツ再生制御システム、コンテンツ再生方法、コンテンツ管理方法、コンテンツ再生制御方法、およびプログラム | |
| JP2005056343A (ja) | コンテンツ再生装置、コンテンツ管理方法、コンテンツ管理システム。 | |
| JP5962742B2 (ja) | コンテンツ再生システム、制御装置及び再生装置 | |
| JP5061634B2 (ja) | 携帯型表示装置、表示方法およびプログラム | |
| US20070078847A1 (en) | System and method for generating a play-list | |
| JP2011096294A (ja) | コンテンツ再生装置、プログラム、及びコンテンツ再生方法 | |
| JP2009009667A (ja) | コンテンツ情報取得装置、プログラム、及びコンテンツ情報取得方法 | |
| HK1137238A1 (zh) | 用於选择媒体的方法和系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131001 |