2012年1月24日火曜日

iphoneのjavascriptで巨大なファイルをあつかってみる。

iphoneのmobileサファリの実行時間制限に10秒までというのがありますが、別の関数の呼び出しになってれば大丈夫みたいですね。

というわけで、デモは示すことができませんが手持ちのmp3をXMLHttpRequestをつかって読み込んできちんと全部データを取得できているか確認してみました。

やったこと。
XMLHttpRequestをつかってデータを呼び出す。
onreadystatechageが呼び出された回数を記録する。
それぞれの呼び出しのresponseTextの長さを合計して読み込んだデータ長を計算する。
かかった時間を表示する。

としてみました。
すると・・・こうなった。
読み込みにかかった時間は3分弱
ステップ数は37000回弱
読み込みサイズは59MByte
ちゃんと読み込めてますね。

XMLHttpRequestでメディアデータを呼び出すようにしておくと、分割されて処理がまわるので、問題なく動作するといったところでしょうか。

でかいサイズのファイルを扱いたい・・・というときになにかにつかえるかも!?
と思いました。

なんでこんなことやったかというと、mp3やm4aのデータをyoutubeから抽出して、localStorageに保存しておき、data URL schemeをつかってaudioタグにいれれば、音楽ファイルみたいに扱えるんじゃない!?とおもったからです。

もっとも結果としては、「追記」という動作がaudioタグのsrcに実行できなかったため、動作しなかったんですけどね。(srcを更新するたびにデータとして受け入れるみたいで、audioタグのソースのリロードが大量にはしってフリーズしました。)

mp4 -> m4a変換ができそうだったから、いけると思ったんですけどねぇ。やはりnativeアプリにはかなわないか・・・

0 件のコメント:

コメントを投稿