"複数のコンテンツが連結されたデータストリームを受信する受信手段と、前記受信されたデータストリームを前記コンテンツごとに区分する区分手段と、前記区分された各コンテンツを順次再生する再生手段と、前記受信されたデータストリームを受け取って一時的に保持し、前記再生手段に出力するバッファ手段と、前記バッファ手段に保持されている前記データストリームのデータ量を検出する検出手段と、前記検出手段の検出結果に基づいて、前記再生手段が前記各コンテンツを再生する間隔を調整する調整手段とを備え、前記データストリーム内の各コンテンツは複数のフレームを含み、前記バッファ手段は、前記調整手段の指定に応じて前記複数のフレームを受け取り又は出力する複数のバッファを含み、前記区分手段は、前記受信手段が前記各コンテンツの先頭フレームを受信したか否かを判断し、前記検出手段は、各バッファの前記データ量を検出し、前記調整手段はさらに、前記受信手段が前記コンテンツの先頭フレームを受信したとき、前記複数のバッファのうちフレームを出力中のバッファのデータ量が、所定の下限値未満であるか否かを判断する第1の判断手段と、前記フレームを出力中のバッファのデータ量が前記下限値未満であるとき、前記データを出力中のバッファと異なる他のバッファを、前記コンテンツの先頭フレーム及びそれ以降に受信されるフレームを受け取る受取バッファに指定する受取指定手段と、前記複数のバッファのうちフレームを受け取り中のバッファのデータ量が、前記下限値を超えたとき、前記データを受け取り中のバッファを、前記フレームを前記再生手段に順次出力する出力バッファに指定する出力指定手段とを含むことを特徴とするストリーム再生装置。請求項1に記載のストリーム再生装置であってさらに、再生クロックを生成するクロック生成手段を備え、前記再生手段は、前記再生クロックに応答して前記フレームに基づくコンテンツを再生し、前記調整手段はさらに、前記出力バッファが前記受取バッファと同じバッファであるとき、前記出力バッファのデータ量に基づいて、前記再生クロックの周波数を調整するよう前記クロック生成手段に指令することを特徴とするストリーム再生装置。請求項1に記載のストリーム再生装置であって、前記出力指定手段は、前記フレームを受け取り中のバッファのデータ量が、前記下限値よりも大きい所定の基準値を超えたとき、前記データを受け取り中のバッファを、前記出力バッファに指定することを特徴とするストリーム再生装置。請求項1に記載のストリーム再生装置であって、前記調整手段はさらに、前記受信手段が前記コンテンツの先頭フレームを受信したとき、前記フレームを出力中のバッファのデータ量が前記下限値よりも大きい所定の上限値を超えているか否かを判断する第2の判断手段を含み、前記受取指定手段はさらに、前記データ量が前記上限値を超えているとき、前記フレームを出力中のバッファと異なる他のバッファを、前記受取バッファに指定し、前記調整手段はさらに、前記出力指示手段が出力バッファを指定したとき、出力バッファに指定されたバッファと異なる他のバッファが保持するフレームを消去する消去手段を含むことを特徴とするストリーム再生装置。請求項1~4のいずれかに記載のストリーム再生装置の各手段をコンピュータに実行させる、ストリーム再生プログラム。本発明の目的は、複数のコンテンツが連結したデータストリームをストリーム再生するとき、各コンテンツの途中で再生が途切れるのを防止するストリーム再生装置を提供することである。本発明によるストリーム再生装置は、受信手段と、区分手段と、再生手段と、バッファ手段と、検出手段と、調整手段とを備える。受信手段は、複数のコンテンツが連結されたデータストリームを受信する。区分手段は、受信されたデータストリームをコンテンツごとに区分する。再生手段は、区分された各コンテンツを順次再生する。バッファ手段は、受信されたデータストリームを受け取って一時的に保持し、再生手段に出力する。検出手段は、バッファ手段に保持されているデータストリームのデータ量を検出する。調整手段は、検出手段の検出結果に基づいて、再生手段が各コンテンツを再生する間隔を調整する。本発明によるストリーム再生装置は、データストリームをコンテンツごとに区分する。また、バッファ手段に保持されたデータ量を検出し、検出結果に応じて、コンテンツを再生する間隔を調整する。たとえば、バッファ手段に保持されるデータ量が少なければ、コンテンツを再生する間隔を広げる。このため、コンテンツの再生途中で、バッファ手段が保持するデータが枯渇し、再生が途切れるのを防止できる。好ましくは、調整手段は、検出されたデータ量が基準データ量よりも少ない場合、基準データ量と検出されたデータ量との差分に基づいて調整時間を決定する。再生手段は、コンテンツの再生を完了してから決定された調整時間が経過したとき、次のコンテンツを再生する。ストリーム再生装置は、基準データ量に対して受信手段のデータ量が少ないとき、調整時間を設定する。そして、コンテンツの再生が完了してから調整時間が経過するまで次のコンテンツを再生しない。そのため、調整時間中に受信手段に保持されるデータ量が増加し、コンテンツの再生中にデータが枯渇することによる再生の途切れを防止できる。好ましくは、調整手段はさらに、検出されたデータ量が基準データ量よりも多い場合、基準データ量と検出されたデータ量との差分に基づいてデータ削除量を決定する。再生手段は、各コンテンツの先頭又は末尾からデータ削除量分のデータを除いた部分を再生する。ストリーム再生装置は、基準データ量に対して受信手段のデータ量が多いとき、データ削除量を決定し、各コンテンツの先頭又は末尾からデータ削除量分のデータを削除する。これにより、バッファ手段が溢れるオーバーフローするのを抑制できる。また、コンテンツの先頭又は末尾は、無音であったり無映像である場合が多いため、これらのデータを削除しても、ユーザに与える違和感は少ない。好ましくは、データストリーム内の各コンテンツは複数のフレームを含む。また、バッファ手段は、複数のバッファを含む。複数のバッファは、調整手段の指定に応じて複数のフレームを受け取り又は出力する。区分手段は、受信手段が各コンテンツの先頭フレームを受信したか否かを判断する。検知手段は、各バッファのデータ量を検出する。調整手段はさらに、第1の判断手段と、受取指定手段と、出力指定手段とを含む。第1の判断手段は、受信手段がコンテンツの先頭フレームを受信したとき、複数のバッファのうちフレームを出力中の出力バッファのデータ量が、所定の下限値未満であるか否かを判断する。受取指定手段は、フレームを出力中のバッファのデータ量が下限値未満であるとき、データを出力中のバッファと異なる他のバッファを、コンテンツの先頭フレーム及びそれ以降に受信されるフレームを受け取る受取バッファに指定する。出力指定手段は、複数のバッファのうちフレームを受け取り中のバッファのデータ量が、下限値を超えたとき、データを受け取り中のバッファを、複数のフレームを順次出力する出力バッファに指定する。フレームを出力中のバッファのデータ量が下限値未満である場合、ストリーム再生装置が受けるデータ量が、再生されるデータ量よりも少ない。そのため、ストリーム再生装置は、次のコンテンツの先頭フレーム及びそれ以降のフレームを、現在フレームを出力中のバッファと異なる他のバッファに入力する。そして、次のコンテンツの先頭フレーム以降のフレームを受け取って保持するバッファのデータ量が下限値を超えるまで、フレームを出力しない。以上の構成により、コンテンツの再生が完了した後、次のコンテンツが再生されるまでの間、調整時間が挿入される。調整時間の挿入により、データの枯渇に起因してコンテンツが再生途中で途切れるのを防止できる。好ましくは、ストリーム再生装置はさらに、クロック生成手段を備える。クロック生成手段は、再生クロックを生成する。再生手段は、再生クロックに応答して、フレームに基づくコンテンツを再生する。調整手段はさらに、出力バッファが受取バッファと同じバッファであるとき、出力バッファのデータ量に基づいて、再生クロックの周波数を調整するようクロック再生手段に指令する。この場合、フレームを出力するバッファのデータ量に応じて、再生クロックが調整される。そのため、再生手段のコンテンツの再生速度が微調整される。その結果、バッファ内のデータが枯渇したり、バッファがオーバーフローしたりするのを抑制でき、コンテンツが再生途中で途切れるのを抑制できる。好ましくは、出力指定手段は、フレームを受け取り中のバッファのデータ量が、下限値よりも大きい所定の基準値を超えたとき、データを受け取り中のバッファを、出力バッファに指定する。この場合、バッファの切り替え回数を抑えることができる。そのため、コンテンツの連続再生回数を増加することができる。好ましくは、調整手段はさらに、第2の判断手段を含む。第2の判断手段は、受信手段がコンテンツの先頭フレームを受信したとき、フレームを出力中のバッファのデータ量が下限値よりも大きい所定の上限値を超えているか否かを判断する。受取指定手段はさらに、データ量が上限値を超えているとき、フレームを出力中のバッファと異なる他のバッファを受取バッファに指定する。調整手段はさらに、消去手段を含む。消去手段は、出力指示手段が出力バッファを指定したとき、出力バッファに指定されたバッファと異なる他のバッファが保持するフレームを消去する。フレームを出力中のバッファのデータ量が上限値を超える場合、ストリーム再生装置が受けるデータ量が、再生されるデータ量よりも多い。消去手段により、現在再生中のコンテンツの末尾のデータを削除した後、次のコンテンツを再生するため、バッファ手段がオーバーフローするのを抑制できる。また、コンテンツの末尾部分は、無音であったり無映像である場合が多いため、削除してもユーザに与える違和感は小さい。好ましくは、各フレームは、コンテンツごとに規定された時刻管理情報を含む。区分手段は、受信手段が受信したフレームから時刻管理情報を読み出して、フレームが先頭フレームか否かを判断する。この場合、データストリームからコンテンツを容易に区分できる。本発明によるストリーミングシステムは、サーバと、サーバと接続されるストリーム再生装置とを備える。サーバは、配信手段を備える。配信手段は、複数のコンテンツを連結したデータストリームをストリーミング配信する。ストリーム再生装置は、上述の構成を備える。また、本発明によるストリーム再生プログラムは、上述のストリーム再生装置をコンピュータに実現する。複数のコンテンツが連結したデータストリームをストリーム再生するとき、各コンテンツの途中で再生が途切れるのを防止するストリーム再生装置を提供することができる。以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。[第1の実施の形態][全体構成]図1を参照して、本実施の形態によるストリーミングシステムは、ストリーム再生装置1と、ストリーミングサーバ2とを備える。ストリーミングサーバ2は、たとえば、放送施設に設置され、曲配信サービスを運営する会社で管理される。一方、ストリーム再生装置1は、たとえば、曲配信サービスの利用を契約したユーザの家庭内に設置される。ストリーミングサーバ2は、ハードディスクドライブHDD21と、データストリーム生成部22と、配信部23とを備える。HDD21は、複数のコンテンツファイルを蓄積する。本実施の形態では、コンテンツファイルを曲ファイルとして説明する。なお、コンテンツは、曲であってもよいし、映像であってもよい。また映像と音声を含んでもよい。HDD21に蓄積された各曲ファイルは、MPEG2、MPEG4、MP3等の符号化されたファイルである。以降、符号化された曲ファイルを符号化曲ファイルという。符号化曲ファイルは、複数のフレームで構成される。符号化曲ファイル内の各フレームは、そのフレームをいつ再生すべきかを示す時刻管理情報以下、タイムスタンプというを含む。たとえば、タイムスタンプは、符号化曲ファイル内における当該フレームの再生時刻を示す。ストリーム再生装置1は、ストリーミングサーバ2から符号化曲ファイルを受信したとき、符号化曲ファイル内のフレームのタイムスタンプに基づいて、フレームを順次デコードして出力する。つまり、ストリーム再生装置1は、タイムスタンプに基づいてフレームを順次再生する。ストリーミングサーバ2内のデータストリーム生成部22は、HDD21から複数の符号化曲ファイルを抽出し、抽出された複数の符号化曲ファイルを連結してデータストリームを作成する。図2に、データストリーム生成部22で生成されたデータストリームの一例を示す。図2に示すように、データストリームDSは、複数の符号化曲ファイルMFが連結して構成される。また、各符号化曲ファイルMFは、複数のフレームFRを含む。以降、複数のフレームFRのうち、先頭のフレームFRを先頭フレームとよぶ。配信部23は、生成されたデータストリームをストリーミング配信する。上述のとおり、ストリーミングサーバ2が放送局に設置される場合、放送局は、曲のリクエストをストリーム再生装置1のユーザから受け付ける。そして、リクエストされた複数の曲ファイルがHDD21から抽出され、データストリーム生成部22により、データストリームが作成される。作成されたデータストリームは、ネットワーク3を介してストリーム再生装置1にストリーミング配信される。ストリーム再生装置1は、ネットワーク3を介してストリーミングサーバ2に接続される。ストリーム再生装置1は、上述のとおり、たとえば、ユーザの家庭内に設置される。ストリーム再生装置1は、ストリーミングサーバ2からストリーミング配信されるデータストリームを受信し、ストリーム再生する。具体的には、ストリーム再生装置1は、配信されたデータストリームをバッファに一時的に保持しバッファリング、保持されたデータストリームを読み出して、データストリームを構成する各符号化曲ファイルを連続してデコードし、出力する。ストリーム再生装置1はさらに、バッファリングされたデータストリームが枯渇しないように、または、バッファが溢れないオーバーフローしないように、再生される曲ファイルの再生間隔曲間を調整する。図3を参照して、ストリーム再生装置1は、受信部10と、受信バッファ11と、区分部12と、検出部13と、調整部17と、再生部18とを備える。受信部10は、ストリーミングサーバ2からストリーム配信されるデータストリームを受信する。より具体的には、データストリームを構成する複数のフレームを順次受信する。受信バッファ11は、受信されたデータストリームを受信部10から受け取り、一時的に保持する。つまり、受信バッファ11は、受信されたデータストリームをバッファリングする。そして、受信バッファ11は、保持しているデータストリーム内の複数のフレームを、区分部12を介して再生部18に順次出力する。再生部18は、デコーダ14と、デコードバッファ15と、データ編集部16とを備える。デコーダ14は、第1デコーダ141と第2デコーダ142とを含む。第1デコーダ141及び第2デコーダ142は、符号化曲ファイルをデコードする。区分部12は、受信バッファ11から連続して出力される複数のフレームを符号化曲ファイルごとに区分する。具体的には、区分部12は、フレーム内のタイムスタンプを読み出す。そして、読み出されたタイムスタンプに基づいて、符号化曲ファイルの先頭フレームを特定する。要するに、区分部12は、受信バッファ11から連続して出力されるフレームのうち、各コンテンツの先頭フレームを特定することにより、コンテンツを区分する。区分部12はさらに、符号化曲ファイルの先頭フレームを特定したとき、先頭フレームから、出力先のデコーダを変更する。たとえば、区分部12が、受信バッファ11から出力されたフレームを第1デコーダ141に出力している最中に、新たな符号化曲ファイルの先頭フレームを特定したとき、区分部12は、フレームの出力先を第1デコーダ141から第2デコーダ142に切り替える。そして、特定された先頭フレーム及び先頭フレーム以降に受信バッファ11にバッファリングされたフレームを第2デコーダ142に順次出力する。要するに、区分部12は、符号化曲ファイルごとに、出力先のデコーダを切り替える。再生部18内のデコードバッファ15は、第1デコードバッファ151と第2デコードバッファ152とを含む。第1デコードバッファ151は、第1デコーダ141によりデコードされた曲ファイルをバッファリングする。第2デコードバッファ152は、第2デコーダ142によりデコードされた曲ファイルをバッファリングする。第1及び第2デコードバッファは、順番に、バッファリングされた曲ファイルを出力する。具体的には、第1デコードバッファ151が曲ファイルを出力した後、第2デコードバッファ152が曲ファイルを出力する。曲ファイルの出力のタイミングは、調整部17により決定される。検出部13は、受信バッファ11にバッファリングされたデータストリーム複数のフレームのデータ量を、所定期間ごとに検出する。調整部17は、検出部13の検出結果に基づいて、再生部18から出力される曲ファイルの曲間を調整する。具体的には、調整部17は、検出部13により検出されたデータ量以下、検出データ量というを基準データ量Vref1と比較する。ここで、基準データ量Vref1は、通常再生時に、再生される曲が再生途中で途切れたり、受信バッファ11が溢れたりオーバーフローしない、理想的なデータ量である。検出データ量が基準データ量Vref1未満である場合、ストリーム再生装置1がストリーミングサーバ2から受信するデータ量よりも、ストリーム再生装置1が再生するデータ量の方が多い。以降、この状態を受信データ過少状態という。この場合、調整部17は、再生される曲の曲間を調整する。具体的には、調整部17は、検出データ量と基準データ量Vrefとの差分に基づいて調整時間を決定する。そして、データ編集部16に決定された調整時間分の曲間を設けるよう指示する。データ編集部16は、調整部17の指示に基づいて、曲ファイルの出力間隔曲間を調整する。具体的には、曲ファイルの出力を完了した後、決定された調整時間分の無音データを生成して出力する。そして、調整時間分の無音データを出力した後、次の曲ファイルを出力する。要するに、受信データ過少状態のときは、曲間を広く設けることで、受信バッファ11が枯渇するのを抑制する。そのため、再生中の曲の途中でフレームが枯渇し音切れ発生するのを防止できる。一方、検出データ量が基準データ量Vref1よりも多い場合、ストリーム再生装置1がストリーミングサーバ2から受信するデータ量が、ストリーム再生装置1が再生するデータ量よりも多い。この状態を受信データ過多状態という。この場合、調整部17は、検出データ量と基準データ量Vref1との差分に基づいてフレーム削除量を決定する。そして、再生部18に、各デコードバッファ151及び152にバッファリングされる曲ファイルの先頭又は末尾から決定されたフレーム削除量分のフレームを削除して曲を再生するよう指示する。データ編集部16は、調整部17の指示に基づいて、各曲ファイルの先頭又は末尾からフレーム削除量分のフレームを除いて出力する。要するに、受信データ過多状態のときは、各曲ファイルの先頭又は末尾のフレームを除いて再生することで、受信バッファ11がオーバーフローするのを抑制する。曲ファイルの先頭及び末尾のフレームの多くは、無音データである。そのため、先頭又は末尾フレームを除いても、ユーザに違和感を与えにくい。上述の各構成10~18は、図4に示すハードウェア構成により実現される。ストリーム再生装置1は、CPU101と、メモリ102と、ハードディスクドライブHDD103と、通信部104とを備え、これらはバス105で相互に接続される。たとえば、HDD103に格納されたストリーム再生プログラムをメモリ102に読み出し、読み出された曲再生プログラムをCPU101で実行することにより、ストリーム再生装置1の各構成10~18が実現される。[動作]以下、フロー図を用いてストリーム再生装置1の動作を詳述する。ストリーム再生装置1の動作は、大きく次の3つに分けられる。1つ目は、区分部12が、受信部10で連続して受信されるフレームを曲ファイルごとに区分する動作区分動作である。2つ目は、受信バッファ11のデータ量に基づいて、調整部17が、再生曲の曲間の調整、又は、再生曲の一部の削除を指示する動作調整指示動作である。3つ目は、調整部17の指示に応じて、再生部18が曲を再生する動作再生動作である。以下、区分動作、調整指示動作及び再生動作について説明する。[区分動作]図5を参照して、ストリーム再生装置1内の区分部12は、受信バッファ11からフレームFRnを受信するS1。受信バッファ11は、受信部10から受けたフレーム順に、フレームFRnを出力する。続いて、区分部12は、フレームFRnに含まれるタイムスタンプTnを読み出すS2。そして、読み出されたタイムスタンプTnに基づいて、ステップS1で受信したフレームFRnが、新たな符号化曲ファイルの先頭フレームか否かを判断するS3。一般的に、曲ファイルの先頭フレームのタイムスタンプは、初期値の0である。そのため、区分部12は、タイムスタンプを参照することで、曲ファイルの先頭フレームを特定できる。また、一般的に、あるフレームのタイムスタンプに、そのフレームの再生時間を加算すれば、次のフレームのタイムスタンプとなる。つまり、同じ曲ファイル内のフレームでは、先頭から順にタイムスタンプが徐々に増加する。そして、連続するフレームのタイムスタンプの差分は、所定の数値範囲内となる。一方、ある曲の末尾のフレームのタイムスタンプと、次の曲の先頭のフレームのタイムスタンプとの差分は、同一曲ファイル内の連続するフレームのタイムスタンプの差分よりもはるかに大きい。そのため、フレームFRnのタイムスタンプと、フレームFRn-1のタイムスタンプとの差分を算出し、算出された差分が所定値よりも大きい場合、フレームFRnを先頭フレームと判断してもよい。ステップS3での判断の結果、フレームFRnが先頭フレームではない場合S3でNO、フレームFRnは、以前に区分部12を通過したフレームと同じ曲ファイルに属する。そのため、区分部12は、指定されているデコーダ以下、指定デコーダというにフレームFRnを出力する。指定デコーダの識別情報指定デコーダ情報は、メモリ102に格納されている。区分部12は、指定デコーダ情報に基づいて指定デコーダを特定し、特定された指定デコーダにフレームFRnを出力するS5。以下、指定デコーダを第1デコーダ141として、説明を続ける。ステップS3での判断の結果、フレームFRnが新たな曲ファイルの先頭フレームである場合S3でYES、区分部12は、指定デコーダを第1デコーダ141から第2デコーダ142に切り替えるS4。具体的には、区分部12は、指定デコーダ情報を第1デコーダ141の識別情報から第2デコーダ142の識別情報に変更する。そして、変更された指定デコーダ情報に基づいて、第2デコーダ142に先頭フレームFRnを出力するS5。以上の工程により、区分部12は、ストリーム再生装置1が受信したデータストリームを、複数の符号化曲ファイルに区分する。区分部12は、さらに、ある符号化曲ファイルと、その符号化曲ファイルの次に受信した新たな符号化曲ファイルとを、それぞれ異なるデコーダ141及び142に出力する。各デコーダ141及び142は、それぞれ符号化曲ファイルをデコードし、デコードされた曲ファイルを別々のデコードバッファ151及び152に格納する。[調整指示動作]調整部17は、受信バッファ11が保持しているデータ量に基づいて、再生曲の曲間の調整を指示したり、再生曲の先頭又は末尾のフレームの削除を指示する。図6を参照して、調整部17は、所定時間ΔTごとに、調整指示動作を実行するS11。所定時間ΔTが経過したときS11でYES、調整部17は、検出部13に受信バッファ11が保持するデータ量を要求するS12。検出部13は、調整部17からの要求を受け、受信バッファ11のデータ量を検出する。そして、検出されたデータ量検出データ量Vdetを調整部17に通知する。調整部17は検出データ量Vdetを取得するS13。続いて、調整部17は、式1に基づいて、検出データ量Vdetと基準データ量Vref1との差分ΔVを求めるS14。ΔV=Vdet-Vref11なお、基準データ量Vref1は予めメモリ102に格納されている。調整部17はさらに、ステップS14で算出された差分ΔVを利用して、式2で示される調整時間ΔADJを算出するS15。ΔADJ=ΔV/圧縮ビットレート/曲ファイル再生数2ここで、曲ファイル再生数とは、所定期間ΔT内に再生される曲ファイル数である。例えば、所定期間ΔTが60分であり、曲ファイルの平均再生時間が4分である場合、曲ファイル再生数を15とする。曲ファイル再生数は、予めメモリ102に格納されていてもよい。また、調整部17が、所定期間ΔT内で実際に再生された曲ファイル数をカウントしたものを用いてもよい。また、式2で求めた値に1以上の係数αを乗じたものを調整時間ΔADJとしてもよい。算出された調整時間ΔADJはメモリ102に格納される。続いて、調整部17は、ステップS15で算出された調整時間ΔADJが0よりも大きいか否かを判断するS16及びS17。調整時間ΔADJが0よりも小さいときS16でYES、調整部17は、データ編集部16に、曲間に調整時間ΔADJ分の無音データを挿入するよう指示するS18。具体的には、メモリ102内に格納されている指示情報を、挿入を示す指示以下、挿入指示というに設定する。調整時間ΔADJが0よりも小さい場合、検出データ量Vdetが基準データ量Vref1よりも少ない。つまり、ストリーム再生装置1は、受信データ過少状態である。そのため、調整部17は、再生曲に曲間を設けて、再生中の曲が途中で途切れないようにする。一方、調整時間ΔADJが0よりも大きい場合S16でNO、S17でYES、調整部17は、データ編集部16に、再生曲の先頭又は末尾を調整時間ΔADJ分だけ除いて出力するよう指示するS19。具体的には、メモリ102内に格納されている指示情報を、削除を示す指示以下、削除指示というに設定する。調整時間ΔADJが0よりも大きい場合、検出データ量Vdetが基準データ量Vref1よりも多い。つまり、ストリーム再生装置1は、受信データ過多状態である。そのため、調整部17は、曲の先頭又は末尾フレームを除いて再生することで、受信バッファ11がオーバーフローするのを抑制する。調整時間ΔADJが0である場合S16及びS17でNO、受信バッファのデータ量は、基準データ量Vref1と同じであり、理想的なデータ量である。そのため、調整部17は、メモリ102内の指示情報を、曲ファイルをそのまま再生することを示す指示以下、通常再生指示に設定する。[再生動作]再生部18は、調整部17の指示に応じて曲を再生する。図7を参照して、再生部18内のデータ編集部16は、2つのデコードバッファ151及び152のうち、デコードされた曲ファイルを読み出すデコードバッファ以下、出力バッファというを特定する。ここでは、出力バッファが第1デコードバッファ151であるとして説明を続ける。データ編集部16は、第1デコードバッファ151からデコードされた曲ファイルを読み出すS31。出力バッファに関する情報出力バッファ情報は、メモリ102に格納されている。出力バッファが第1デコードバッファ151である場合、出力バッファ情報は第1デコードバッファ151を示す。第1デコードバッファ151から曲ファイルのフレームを全て読み出し終えたときS32でYES、データ編集部16は、出力バッファを第1デコードバッファ151から第2デコードバッファ152に切り替えるS33。これにより、データ編集部16は、次の曲ファイルを出力する準備ができる。このとき、メモリ102内の出力バッファ情報は、第2デコードバッファ152に変更される。続いて、データ編集部16は、メモリ102から指示情報を読み出すS34。指示情報が挿入指示の場合S35でYES、データ編集部16は、調整時間ΔADJ分の長さの無音データを生成し、出力するS36。無音データを出力した後、データ編集部16は、ステップS31に戻って出力バッファステップS33で新たに指定された第2デコードバッファ152から曲ファイルを読み出して出力する。要するに、曲間に調整時間ADJ分の無音データを挿入する。これにより、再生部18は、曲ファイルの再生を完了してから調整時間ΔADJが経過した後に、次の曲ファイルの再生を開始する。一方、ステップS34で読み出した指示情報が削除指示の場合S35でNO、S37でYES、出力バッファここでは第2デコードバッファ152内の曲ファイルのうち、先頭から調整時間ΔADJ分の複数のフレーム又は末尾から調整時間ΔADJ分の複数のフレームを特定するS38。そして、ステップS31に戻って曲ファイルを読み出すとき、ステップS38で特定されたフレームを除いた部分を読み出して出力するS31。これにより、再生部18は、曲ファイルの先頭又は末尾の一部を除いて再生する。曲ファイルの先頭部分及び末尾部分は無音部分である場合が多い。そのため、先頭部分又は末尾部分のフレームを除いて再生しても、ユーザは違和感なく聴くことができる。また、受信バッファ11がオーバーフローするのを抑制できる。なお、指示情報が通常再生指示である場合S35及びS37でNO、データ編集部16は、無音データを挿入したり、曲ファイルの先頭又は末尾部分のうち調整時間ΔADJ分の複数のフレームを特定したりすることなく、出力デコーダから曲ファイルを読み出して外部に出力するS31。以上、ストリーム再生装置1は、受信バッファ11のデータ量を所定期間ごとに検出し、検出されたデータ量Vdetと基準データ量Vref1との差分に基づいて、受信データ過少状態か受信データ過多状態かを判断する。そして、受信データ過少状態のとき、曲間に調整時間を挿入することで、再生曲が途中で途切れるのを防ぐ。一方、受信データ過多状態のとき、各曲の先頭又は末尾フレームの一部を除いて再生することをで、受信バッファ11がオーバーフローするのを防ぐ。なお、図6中のステップS16及び17では、調整部17は、調整時間ΔADJが0より大きいか否かに基づいて、指示内容を決定した。しかしながら、たとえば、調整時間ΔADJが0を含む所定の範囲内である場合、調整部17は指示情報を通常再生指示としてもよい。要するに、検出データ量Vdetが基準データ量Vref1から所定の範囲内であれば、無音時間の挿入及びフレームの削除を指示しなくてもよい。[第2の実施の形態]第1の実施の形態では、ストリーム再生装置1は、2つのデコーダ第1デコーダ141、第2デコーダと2つのデコードバッファ第1デコードバッファ151、第2デコードバッファ152を備えたが、デコーダの処理能力が高い場合、デコーダ及びデコードバッファは1つでもよい。図8を参照して、第2の実施の形態によるストリーム再生装置20は、1つのデコーダ143と、1つのデコードバッファ153とを備える。その他の構成はストリーム再生装置1と同じである。ストリーム再生装置20は、第1の実施の形態と同様に、区分動作と、調整指示動作と、再生動作とを実行する。このうち、調整指示動作は第1の実施の形態と同じである。また、再生動作は、図7中のステップS33を除いたステップを実行する。以下、区分動作について説明する。[区分動作]図9を参照して、区分部12は、第1の実施の形態と同様に、受信バッファ11から出力されるデータストリームを符号化曲ファイルごとに区分する。ただし、ストリーム再生装置20のデコーダ及びデコードバッファは1つだけデコーダ143及びデコードバッファ153である。そのため、区分部12は、デコードバッファ153が曲ファイルの出力を完了するまで、新たな符号化曲ファイルのフレームの出力を停止する。要するに、区分部12は、デコードバッファ153が曲ファイルの出力を完了するごとに、新たな符号化曲ファイルをデコーダ143に出力する。これにより、複数の曲ファイルのフレームがデコードバッファ153内に混在するのを防ぐ。図9を参照して、ステップS1~S3までの動作は図4と同じである。区分部12が、新たな符号化曲ファイルの先頭フレームを受けたときS3でYES、区分部12は、そのフレームの出力を停止するS7。そして、デコードバッファ153が保持している曲ファイルのフレームを全て出力し終えた後S8でYES、ステップS7で止めていたフレームデータの出力を開始するS6。調整部17は、デコードバッファ153が全てのフレームを出力し終えたか否かを監視する。そして、デコードバッファ153が全てのフレームを出力し終えたとき、調整部17は、区分部12に出力完了通知を出力する。区分部12は、出力完了通知を受けたときS8でYES、フレームの出力を開始するS6。以上の動作により、区分部12は、曲ファイルごとに区分することができる。[第3の実施の形態]図10を参照して、第3の実施の形態によるストリーム再生装置30は、受信部31と、区分部32と、第1バッファ33と、第2バッファ34と、検出部35と、調整部36と、再生部38とを備える。再生部38は、デコーダ37を含む。本実施の形態では、2つのバッファ33及び34を配置する。検出部35は、第1バッファ33及び第2バッファ34が蓄積するデータ量を求め、求めたデータ量をメモリ102に格納する。調整部36は、メモリ102に格納されたデータ量に基づいて、区分部32から出力されたフレームの受け取り先となるバッファ以下、受取バッファという、及び、デコーダ37に出力されるデータの出力元となるバッファ以下、出力バッファというを指定する。調整部36は、制御部361と、受取指定部362と、出力指定部363とを含む。制御部361は、検出部35により検出された第1バッファ33及び第2バッファ34のデータ量が所定の基準値よりも大きいか否か判断し、判断結果に基づいて、受取指定部362及び出力指定部363に指示を出力する。受取指定部362は、第1及び第2バッファ33、34のうち、受信部31が受けたフレームの受取先となるバッファ受取バッファを指定する。出力指定部363は、第1及び第2バッファ33、34のうち、デコーダ37にフレームを出力するバッファ出力バッファを指定する。[動作]ストリーム再生装置30内の区分部32は、受信部31から受けたデータストリームを、曲ファイルごとに区分する区分動作。検出部35は、第1及び第2バッファ33、34のデータ量を検出する。調整部36は、検出されたデータ量に基づいて、区分部32から出力されるフレームを受け取って保持する受取バッファを指定する。また、検出されたデータ量に基づいて、フレームをデコーダ37に出力する出力バッファを指定する。このとき、調整部36は、デコーダによりデコードされて外部に出力される曲ファイルが、曲の途中で途切れないように、受取及び出力バッファを指定する調整動作。上述のストリーム再生装置30の動作を模式図を用いて説明する。図11を参照して、調整部36は、初めに、第1バッファ33を受取バッファに指定する。そのため、区分部32から出力されたフレームは第1バッファ33に入力され、保持される。第1バッファ33のデータ量は、検出部35により検出される。検出された第1バッファ33のデータ量が基準値Vref2を超えたとき、調整部36は、第1バッファ33を出力バッファに指定する。これにより、第1バッファ33は、保持しているフレームをデコーダ37に順次出力する図11参照。[受信データ過少状態でのストリーム再生装置の動作]区分部32が新たな符号化曲ファイルの先頭フレームを受けたとき、調整部36は、第1バッファ33のデータ量を確認する。このとき、図12に示すように、第1バッファ33のデータ量が下限値Vmin未満であると仮定する。このとき、調整部36は、受取バッファを第1バッファ33から第2バッファ34に切り替える。つまり、第2バッファ34を新たな受取バッファに指定する。データ量が下限値Vmin未満である場合、ストリーム再生装置30が受けるデータ量よりも、再生されるデータ量の方が多い。つまり、ストリーム再生装置30は、受信データ過少状態である。この場合、第1バッファ33にフレームを継続してバッファリングし続ければ、デコーダ37に出力すべきフレームが、再生曲の途中で枯渇する。そのため、ストリーム再生装置30から出力される曲は、曲の途中で音切れする。このような再生曲の音切れを防止するため、調整部36は、受取バッファを切り替える。新たな曲ファイルのフレームが第2バッファ34にバッファリングされている最中に、図13に示すように、第1バッファ33に保持されていた全てのフレームがデコーダ37に出力される。このとき、1曲分の曲ファイルの出力が完了する。調整部36はさらに、第2バッファ34のデータ量を所定期間ごとに確認し、第2バッファ34のデータ量が基準値Vref2を超えたか否かを判断する。そして、データ量が基準値Vref2を超えるまで、調整部36は、第2バッファ34からフレームを出力しない。調整部36が第2バッファ34からフレームを出力しない間、デコーダ37はデコード処理を行わない。そのため、この間、ストリーム再生装置30は無音状態となる。図14に示すように、第2バッファ34のデータ量が基準値Vref2を超えたとき、調整部36は、第2バッファ34を出力バッファに指定する。出力バッファに指定された第2バッファ34は、デコーダ37にフレームを出力する。このとき、ストリーム再生装置30は、新たな曲を再生する。要するに、ストリーム再生装置30が、受信データ過少状態であるとき、曲の再生が完了してから次の曲が再生されるまでの間、無音の調整時間が挿入される。曲間に調整時間を設けることにより、再生曲が再生途中で途切れるのを防止できる。[受信データ過多状態でのストリーム再生装置の動作]受信データ過多状態の場合のストリーム再生装置30の動作は以下のとおりである。第1バッファ33がフレームを受信しながら、デコーダ37にフレームを出力している最中に、区分部32が新たな曲の先頭フレームを受信したと仮定する。このとき、調整部36は、第1バッファ33のデータ量を確認する。確認した結果、図15に示すように、データ量が上限値Vmaxを超えるとき、調整部36は、第2バッファ34を受取バッファに指定する。つまり、受取バッファを第1バッファ33から第2バッファ34に切り替える。これにより、第2バッファ34が先頭フレーム及びそれ以降のフレームを受け取って保持する。続いて、調整部36は、受取バッファである第2バッファ34のデータ量を監視する。図16に示すように、第2バッファ34のデータ量が基準値Vref2を超えたとき、調整部36は、第2バッファ34を出力バッファに指定する。その結果、図17に示すように、第2バッファ34は、保持しているフレームをデコーダ37に順次出力する。調整部36はさらに、第2バッファ34を出力バッファに指定したとき、他のバッファ第1バッファ33に残存するデータを削除する。たとえば、図16に示すように、第2バッファ34のデータ量が基準値Vref2を超えたとき、第1バッファ33にはまだデータが残存していると仮定する。この場合、調整部36は、第2バッファ34を出力バッファに指定するとともに、第1バッファ33に残存するデータを削除する図17参照。そのため、第1バッファ33に蓄積されていた曲ファイルの末尾部分のデータは出力されず、カットされる。この場合、曲の末尾部分は再生がカットされるが、曲の末尾部分は無音である場合が多い。そのため、再生曲の途中で音切れが発生するよりも、ユーザに与える違和感を抑えることができる。以上のとおり、ストリーム再生装置30は、2つのバッファ33及び34のデータ量を所定の基準値Vmax、Vref2、Vminと比較する。そして、比較結果に基づいて、受取バッファ及び出力バッファを指定する。これにより、ストリーム再生装置30は、受信データ過少状態の時には曲間に調整時間を挿入し、再生曲の途中で音切れが発生するのを抑制する。また、受信データ過多状態の時には曲ファイルの末尾データを削除して、再生曲の途中で音切れが発生するのを防止する。なお、下限値Vminは基準値Vref2と同じであってもよい。以下、フロー図を用いてストリーム再生装置30の動作の詳細を説明する。[区分動作]図18を参照して、ステップS1~S3の動作は、図4と同じである。つまり、区分部32は、フレームFRnからタイムスタンプTnを読み出し、タイムスタンプTnに基づいて、新たな曲ファイルの先頭フレームを特定する。これにより、データストリームを曲ファイルごとに区分できる。区分部32は、受信部31が受信したフレームが先頭フレームであると判断したときS3でYES、調整部36に区分通知を出力するS9。[調整動作]調整部36は、区分部32から区分通知を受けるごとに受取バッファの指定を判断する受取指定動作と、受取バッファのデータ量が基準値Vref2を超えるごとに出力バッファの指定を判断する出力指定動作とを実行する。以下、受取指定動作及び出力指定動作について説明する。[受取指定動作]調整部36は、区分部32から区分通知を受けるごとに、受取指定動作を実行する。図19を参照して、調整部36内の制御部361は、区分通知を受けたときS61でYES、現在フレームをデコーダ37に出力している出力バッファのデータ量を読み出すS62。出力バッファを特定するための情報出力バッファ特定情報はメモリ102に格納されている。出力バッファが第1バッファ33である場合、出力バッファ特定情報は、第1バッファ33を示す。各バッファ33、34のデータ量は、検出部35により所定期間ごとに検出され、メモリ102に格納される。制御部361は、区分通知を受けたとき、出力バッファ特定情報に基づいて出力バッファを特定し、特定された出力バッファのデータ量をメモリ102から読み出す。以下、出力バッファを第1バッファ33と仮定して説明する。なお、調整部36が区分通知を受けるとき、通常は、出力バッファに指定されているバッファは、区分部32からフレームを受け取っている。つまり、出力バッファに指定されているバッファは、同時に受取バッファにも指定されている。そのため、第1バッファ33は、フレームを受け取って保持し、かつ、フレームをデコーダ37に出力している。制御部361は、ステップS62で読み出した第1バッファ33のデータ量が所定範囲内の量か否かを判断するS63及びS64。ステップS63で判断の結果、データ量が下限値Vmin未満である場合S63でYES、ストリーム再生装置30は、受信データ過少状態である。そのため、調整部36は、受取バッファを切り替えるS65、図12参照。具体的には、制御部361は、メモリ102に格納された、受取バッファを特定するための情報受取バッファ特定情報を第2バッファ34に変更する。そして、受取指定部362に、区分部32から受けたフレームを第2バッファ34に出力するよう指示する。受取指定部362は、制御部361からの指示を受け、新たな曲ファイルの先頭フレーム及びそれ以降に受信部31で受信されたフレームを、第2バッファ34に出力する。これにより、第2バッファ34が受取バッファとして、新たな曲ファイルのフレームをバッファリングする。一方、ステップS62で読み出された第1バッファ33のデータ量が上限値Vmaxを超えている場合S63でNO、S64でYES、ストリーム再生装置30は、受信データ過多状態である。そのため、調整部36は、受取バッファを切り替えS65、第2バッファ34に先頭フレーム及びそれ以降のフレームを出力するS66。要するに、調整部36は、ストリーム再生装置30が受信データ過少状態又は受信データ過多状態と判断したとき、受取バッファを切り替える。[出力指定動作]続いて、調整部36の出力指定動作について説明する。図20を参照して、調整部36は、所定期間ごとに出力指定動作を実行する。調整部36内の制御部361は、まず、メモリ102に格納された受取バッファ特定情報を用いて、受取バッファを特定するS71。特定された受取バッファが第2バッファ34であるとして説明を続ける。制御部361は、受取バッファである第2バッファ34のデータ量を読み出すS72。そして、読み出されたデータ量が基準値Vref2よりも大きいか否かを判断するS73。データ量が基準値Vref2よりも小さい場合S73でNO、調整部36は出力指定動作を終了する。つまりこの場合、出力バッファは切り替わらない。一方、ステップS73での判断の結果、データ量が基準値Vref2を超えた場合S73でYES、制御部361は、出力バッファの指定を検討するS74~S76。制御部361はまず、現在の出力バッファを特定するS74。ストリーム再生装置30は、出力バッファを特定するための情報以下、出力バッファ特定情報というを、受取バッファ特定情報と同様に、メモリ102に格納している。制御部361は、メモリ102から出力バッファ特定情報を読み出し、出力バッファを特定する。出力バッファを特定した後、制御部361は、出力バッファが、受取バッファと同じ第2バッファ34か否かを判断するS75。ステップS74で特定された出力バッファが第1バッファ33である場合、出力バッファ第1バッファ33は、受取バッファ第2バッファ34と異なるS75でNO。そのため、制御部361は、出力バッファを第1バッファ33から第2バッファ34に切り替えるS76、図14及び図17参照。換言すれば、制御部361は、出力バッファ特定情報を第1バッファ33から第2バッファ34に変更し、第2バッファ34を出力バッファに指定する。制御部361は、出力バッファを第2バッファ34に指定するよう出力指定部363に指示する。出力指定部363は、第2バッファ34のデータを受け取り、デコーダ37に出力する。これにより、第2バッファ34が出力バッファとして、デコーダ37にフレームを出力する。制御部361はさらに、出力バッファではないバッファここでは、第1バッファ33に残存する全てのフレームを削除するS77。ストリーム再生装置30が受信データ過多状態である場合、ステップS77の動作により、第1バッファ33に残存したフレームを消去する図17参照。以上の動作により、ストリーム再生装置30が受信データ過少状態である場合図12、調整部36は、第1バッファ33が蓄積された全てのフレームを出力し終えても、第2バッファ34にフレームが所定量Vref2より多い量バッファリングされるまでフレームをデコーダ37に出力しない。この間、デコーダ37はフレームを受け取らないため、デコード処理を停止する。その結果、無音期間が発生する。調整部36は、第2バッファ34が、再生曲の途中で音切れが発生しない程度に十分なデータ量Vref2より多い量を蓄積した後、第2バッファ34を出力バッファに指定して、第2バッファ34のデータをデコーダ37に出力する。要するに、ストリーム再生装置30が受信データ過少状態のとき、調整部36は、曲間に無音の調整時間を挿入することで、再生曲の途中で音切れが発生するのを抑制する。また、ストリーム再生装置30が受信データ過多状態である場合、ステップS77の動作により、先に出力された曲ファイルの末尾をカットして、次曲ファイルを出力する。これにより、バッファがオーバーフローするのを防ぐことができる。また、曲の末尾部分は無音である場合が多いため、曲の途中で音切れが発生するよりも、ユーザに与える違和感を抑えることができる。上述の第3の実施の形態では、下限値Vminと基準値Vref2とを異なる値としたが、下限値Vminと基準値Vref2とは同じ値であってもよい。より具体的には、図20に示す出力指定動作中のステップS73において、制御部361は、受取バッファのデータ量が下限値Vminを超えたか否かを判断し、その判断結果に基づいて、出力バッファを指定してもよい。要するに、下限値Vminと基準値Vref2とは、第1及び第2バッファ33、34のデータ量が、再生曲の再生途中で音切れが発生しない程度のデータ量となるような基準であればよい。なお、基準値Vref2が下限値Vminに近づくほど、バッファの切り替え回数指定変更回数が増加する。そのため、曲の再生が完了するごとに、曲間に調整時間が挿入される。基準値Vref2と下限値Vminとの差が大きいほど、バッファの切り替え回数は低減される。つまり、曲が連続再生される機会が増加し、曲が再生されるごとに曲間に調整時間が挿入されるのを抑制できる。また、第3の実施の形態では、受信データ過少状態のとき、バッファからフレームを出力しない間すなわち、調整時間中、デコーダ37はデコード処理を行わないとしたが、調整時間中に、無音データがデコーダ37に挿入されてもよい。[第4の実施の形態]第3の実施の形態では、第1バッファ33及び第2バッファ34を用いて曲間に調整時間を挿入して、曲の途中で音切れするのを抑制した。第4の実施の形態によるストリーム再生装置ではさらに、第1及び第2バッファ33,34がバッファリングするデータ量に基づいて、再生クロックを調整する。図21を参照して、第4の実施の形態によるストリーム再生装置40は、ストリーム再生装置30と比較して、再生部38に代えて、再生部39とクロック生成部393とを備える。他の構成はストリーム再生装置30と同じである。再生部39は、デコーダ37と、デジタルオーディオインタフェース部DigitalAudioInterface:以下、DAIという391と、デジタルアナログ変換部DigitalAnalogConverter:以下DACという392とを備える。なお、DAI391、DAC392及びクロック生成部393はいずれもハードウェアである。再生部39は、再生クロックに応答して、第1及び第2バッファ33、34から送信されたフレームに基づくコンテンツを再生する。より具体的には、デコーダ37は、第1及び第2バッファ33、34からフレームを受け、デコードする。DAI391は、デコードされたデジタル信号をデコーダ37から受け取る。そして、再生クロックに応じた出力速度で、受け取ったデータを出力する。DAC392は、DAI391から送信されたデジタル信号をアナログ信号に変換して、外部に出力する。クロック生成部393は、DAI391に出力される再生クロック信号を生成する。具体的には、クロック生成部393は、制御部361からの指令に応答して、生成される再生クロックの周波数を調整する。制御部361は、出力バッファが受取バッファと同じバッファであるとき、出力バッファに指定されたバッファのデータ量を監視する。そして、データ量に基づいて、クロック生成部393に対して再生クロックの周波数を調整するよう指示する。具体的には、出力バッファのデータ量が少な過ぎるとき、つまり、受信データ過少状態のとき、再生クロックの周波数を下げるようクロック生成部393に指示する。クロック生成部393は、指示に応じて再生クロックの周波数を下げる。DAI391は、再生クロックに応答して、データの出力速度を下げる。以上の結果、曲の再生途中で音切れが発生するのを抑制できる。一方、出力バッファのデータ量が多すぎるとき、つまり、受信データ過多状態のとき、制御部361は、再生クロックの周波数を上げるようクロック生成部393に指示する。クロック生成部393は、指示に応じて再生クロックの周波数を上げるため、DAI391は、データの出力速度を上げる。その結果、出力バッファがオーバーフローするのを抑制できる。このような再生クロックの調整処理は、受信バッファと出力バッファとが同じバッファを指定している時間が長い場合に有効である。このような場合として、たとえば、ライブ音声の再生や、再生時間の長い曲ファイルの再生等が考えられる。ストリーム再生装置40の動作の詳細を説明する。ストリーム再生装置40は、第3の実施の形態と同じ動作区分動作及び調整動作を実行し、かつ、以下に説明するクロック調整動作も実行する。[クロック調整動作]制御部361は、所定時間ごとにクロック調整動作を実行する。図22を参照して、制御部361はまず、出力バッファ及び受取バッファを特定するS101。具体的には、制御部361は、メモリ102内に格納されたバッファ特定情報を読み出す。図23にメモリ102に格納されたバッファ特定情報テーブルの一例を示す。バッファ特定情報テーブルには、上述の受取指定動作で決定された受取バッファ特定情報と出力指定動作により決定された出力バッファ特定情報とを含む。制御部361は、出力バッファ特定情報に基づいて出力バッファを特定し、受取バッファ特定情報に基づいて受取バッファを特定する。続いて、制御部361は、受取バッファと出力バッファとが同じバッファであるか否かを判断するS102。受取バッファと出力バッファとが同じバッファである場合S102でYES、図14や図17に示すように、一方のバッファここでは第2バッファ34が区分部32からデータを受け取り、かつ、デコーダ37にデータを出力しており、他方のバッファここでは第1バッファのデータ量は0となっている。このとき、制御部361は再生クロックの調整を行うS103~S113。以下、出力バッファ及び受取バッファが第2バッファ34であると仮定して説明を続ける。制御部361はまず、出力バッファである第2バッファ34が蓄積するデータ量Vdetをメモリ102から読み出すS103。検知部35は所定期間ごと第1バッファ33及び第2バッファ34が蓄積するデータ量を検知し、メモリ102に保存する。制御部361は、第2バッファ34のデータ量Vdetをメモリ102から読み出す。続いて、制御部361は、クロック調整レベルCLをメモリ102から読み出すS104。クロック調整レベルCLは、基準レベルであるDefaultレベル、再生クロックの周波数がDefaultレベルよりも低い状態であるLowレベル、再生クロックの周波数がDefaultレベルよりも高い状態であるHighレベル、の3種類が存在し、現在設定されているクロック調整レベルCLがメモリ102に格納されている。制御部361は、メモリ102に格納されているクロック調整レベルCLを読み出す。続いて、制御部361は、ステップS103で読み出されたデータ量Vdetに応じて、クロック調整レベルCLを再設定するS105~S113。[Vdet<Vminである場合]初めに、制御部361は、データ量Vdetが下限値Vmin未満か否かを判断するS105。データ量Vdetが下限値Vmin未満であるときS105でYES、第2バッファ34は、受信データ過少状態である。そのため、このまま再生を継続すれば、第2バッファ34で蓄積されるデータ量が曲の再生途中で枯渇し、音切れが発生する。そのため、制御部361は、クロック調整レベルCLをLowレベルに設定するようクロック生成部393に指令するS109。制御部361から指令を受けたクロック生成部393は、クロック調整レベルCL=Lowレベルに対応した周波数の再生クロックを生成し、DAI391に出力する。Lowレベルに対応した再生クロックの周波数は、Defaultレベルよりも低い。そのため、DAI391からのデータの出力速度はDefaultレベルと比較して遅くなる。要するに、曲の再生速度が若干遅くなる。その結果、第2バッファ34内のデータの枯渇を抑制でき、音切れの発生を防止する。なお、制御部361は、クロック生成部393への指示の後、現在のクロック調整レベルCLをLowレベルとしてメモリ102に保存する。[Vmin<Vdet<Vref2である場合]データ量Vdetが下限値Vminよりも大きく、かつ、基準値Vref2未満である場合S105でNO、S106でYES、制御部361は、ステップS104で読み出されたクロック調整レベルCLがHighレベルであるか否かを判断するS110。そして、Highレベルである場合S110でYES、クロック調整レベルCLをDefaultレベルとするようクロック生成部391に指令するS111。クロック調整レベルCLがHighレベルであれば、データ量Vdetが下限値Vmin以上であるものの、第2バッファ34のデータ量が減少する可能性が高い。そのため、クロック調整レベルCLをHighレベルからDefaultレベルに戻す。制御部361から指令を受けたクロック生成部393は、再生クロックの周波数を低下し、Defaultレベルに戻す。その結果、DAI391から出力されるデータの出力速度は低下する。なお、ステップS105で読み出されたクロック調整レベルCLがLowレベル、又はDefaultレベルである場合S110でNO、制御部361はクロック調整レベルCLを変更せずに維持する。第2バッファ34のデータ量が枯渇するおそれがないからである。[Vref2<Vdet<Vmaxである場合]データ量Vdetが基準値Vref2よりも大きく、かつ、上限値Vmax未満である場合S105でNO、S106でNO、ステップS107でYES、制御部361は、ステップS104で読み出されたクロック調整レベルCLがLowレベルであるか否かを判断するS112。Lowレベルである場合S112でYES、制御部361は、クロック調整レベルCLをDefaultレベルとするようクロック生成部391に指令し、指令したクロック調整レベルCLDefaultレベルをメモリ102に格納するS114。データ量Vdetが基準値Vref2よりも大きい場合、クロック生成部393がLowレベルの再生クロックを生成し続ければ、第2バッファ34のデータ量がオーバーフローする可能性がある。そこで、制御部361は、クロック調整レベルCLをDefaultレベルに戻す。これにより、再生クロックの周波数が高くなり、DAI391のデータ出力速度が上がる。その結果、第2バッファ34がオーバーフローするのを防止できる。なお、ステップS104で読み出されたクロック調整レベルCLがHighレベル、又はDefaultレベルである場合S112でNO、制御部361はクロック調整レベルCLを変更せずに維持する。[Vdet>Vmaxである場合]データ量Vdetが上限値Vmaxよりも大きい場合S105~S107でNO、第2バッファ34は受信データ過多状態であり、このまま再生を継続すれば、第2バッファ34がオーバーフローする。そのため、制御部361は、クロック調整レベルCLをHighレベルに設定するようクロック生成部393に指令し、指令したクロック調整レベルCLHighレベルをメモリ102に格納するS108。制御部361から指示を受けたクロック生成部393は、再生クロックの周波数をHighレベルに調整する。その結果、DAI391からのデータ出力速度が上がり、第2バッファ34のオーバーフローが抑制される。以上のとおり、本実施の形態では、第3の実施の形態の動作に加え、受信バッファと出力バッファとが同じバッファである場合に、出力バッファのデータ量Vdetに応じて再生クロックの周波数を調整する。そのため、ライブ音声データや再生時間が長い曲のように、所定の間隔で曲間を設けることが出来ないデータの再生時であっても、データの出力速度を調整することで、音切れの発生を抑制できる。なお、ステップS102で判断の結果、出力バッファが受取バッファと異なる場合s102でNO、図12で示されるように、曲間を設けるために、新たな曲の先頭フレームから出力バッファと別個のバッファにデータがバッファリングされている。この場合、曲間に無音の調整時間を設けることができるため、再生クロックを調整しなくてよい。そのため、クロック調整レベルCLをDefaultレベルにするようクロック生成部393に指令し、Defaultレベルをメモリ102に格納するS114。以上の実施の形態では、クロック調整レベルを3段階High、Default、Lowとしたが、クロック調整レベルの段階は3段階以上であってもよい。また、本実施の形態では、再生クロックによりDAI391のデータ出力速度を調整したが、再生クロックによりデコーダ37から出力されるデータの出力速度を調整してもよいし、DAC392から出力される信号の出力速度を調整してもよい。要するに、再生クロックは、再生部39から出力されるコンテンツの再生速度を調整する。上述の実施の形態では、区分部は、タイムスタンプを用いて、曲ファイルの先頭フレームを判別したが、区分部は、他の方法により、曲ファイルを区分してもよい。たとえば、各フレームが曲ファイル固有の識別情報ファイルIDを含むメタデータを有する場合、ファイルIDを用いて曲ファイルを区分してもよい。以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。"