2011年8月29日月曜日

MediaPlayerでStreaming的な再生 その2

作戦その1が見事に失敗に終わりました。

めげずに次に行きます。


2.ファイルに追加書き込み時にデータソースを読み直す

今度は、ここを参考にして、

・一時ファイルを作成
・先頭のある程度のバイトのバッファを書き込み
・MediaPlayerで再生
・通信部である程度のバッファがたまったら、以下の手順で追加し、再生を続ける
pause() → カレントポジション保存 → 一時ファイルにバッファを追加書き込み → reset() → setDataSource() → prepare() → seekTo() → start()

という感じを試してみました。
が、バッファの書き込みタイミング毎で音がプチプチ飛ぶため、
とても聞けたものにはなりませんでした。

失敗です。。。



さて、どうしたもんかと、色々考えた結果
今度は次の4つを試してみようということになりました。

1RandomAccessFileを使用して、ダウンロードファイルサイズのファイルを作成、書き込みを行う
2AudioTrackを使用してのStreaming再生
3MediaPlayerを2つ使用してのダブルバッファリング的に音飛びを解消できないか試す
4C++ソースをいじって、ファイルシークの最大値を更新できるようにする

が、結果的には1を試した時点でいい感じになったので、2~4は試してません。
次から1について書いていきます。

その3へ続きます。

0 件のコメント: