アプリ意外と見てる人がいるので、調子乗って酔った勢いでその2を書いてみたぁ(*ノω・*)テヘ寝ても酔っても仕事するさきちゃん(^o^)v気を取り直して、まずはやっぱりディスクキャッシュからやな。言っても前回することは大体書いてもうたけど。取り出したりまするは4.1.1_r1のDiskLruCache.java^^元々はキーとしてStringを使うようになっておりまする。今回は諸般の事情でMediaCodecのエンコーダーが吐くpresentationTimeUsをキーに使いたいのでありまする。キーとしてlongしか来ないとわかってるのにわざわざザワザワStringに変換するなんてありえないのでありんす。いう事で、キーの型をStringからlongに変えます。́・ω・`)ついでに前回も書きましたがLruだと都合がわるいので挿入順にする必要があります。挿入順</long>みたく書き換えてしまいます。Lruじゃないんだもーん^^これでディスクキャッシュの方はだいたいおしまいなんやけど、多少は使いやすいようにヘルパーメソッドを追加しましょう。get(oldestKey());}イテレータの先頭を取得するだけ。IOException;Snapshotとして要素を取得したあとはSnapshot#getStringで文字列として読み取るか、Snapshot#getInputStreamでInputStreamとして読み取るかの2択となりますが、今回の用途ではbye配列またはByteArray、あるいはintとして読み取れた方が便利です。いう事で、Snapshotクラスにもメソッドを追加します。今回は使ってないけどおまけで余計なのも追加してこんな感じ。́ڡ`●)#getStringで文字列として取得したり、BitmapをInputStream経由で読み込むだけであれば無くても困らないんだけど、今回のようにbyte配列またはByteBufferとしてアクセスする場合に必要となるもの、それはデータの長さなのです。いう事でこっそりと...ではないけど#availableメソッドも追加してあります。メソッド名は微妙とは思うけど、対応するInputStreamのメソッド名が#availableなんだもん。それはそうとSnapshotクラスはキャッシュ内の要素のデータを読み取るためのクラスです。豚には真珠、豆腐にはかすがい、馬の耳には東風が必要なように、SnapshotクラスにはEditorクラスと対応するメソッドが必要なのです。{closeQuietly(out);}}...}てな感じで(元からあるのは省略)。オーバーロードメソッドを追加しただけやな。他の方法もあるので好みの方法で実装してんな。一見は百聞にしかず...説明は省略です。面倒臭いだけという疑惑も(汗)本当は#setも#getXXXもループ内で繰り返し呼ばれるのでメソッド内部でワーク用のバッファを確保したくは無いんだけど(。)まぁプリミティブのローカル配列なのでスタックに積まれるだろうと言う事で勘弁してんな。いう事で酔いどれさきちゃんはそろそろお眠なのですーす。次はService側な。reserved.%d人のブロガーが「いいね」をつけました。このサイトでは利便性の向上の為に、機能的なクッキーと外部スクリプトを使用しています。同意しますプライバシー設定広告プライバシー設定このサイトでは利便性の向上の為に、機能的なクッキーと外部スクリプトを使用しています。どのクッキーとスクリプトが使用され、どのように訪問に影響を与えるかを左に示します。設定はいつでも変更できます。あなたの選択はサイトへの訪問に悪い影響を与えません。これらの設定は、現在使用しているブラウザとデバイスにのみ適用されます。広告このサイトでは、サイトや広告を改善するためにCookieを利用することがあります。本サイトを利用することでCookieの仕様に同意するものとします。