0

SDカード(たとえば25G)にキャッシュを作成できるソリューション(おそらく実装)を探しています。これは、メディアをオンデマンドで保存するために「キャッシュレイヤー」で使用されます。問題は、すべてのメディアが 32G SD カードに収まらないことです。そのため、再生しようとしているときに、不足しているデータを透過的にダウンロードできるようにしたい (つまり、別のアプリを使用してダウンロードする必要はありません)。ストックメディアプレーヤーやギャラリーなどで。このような既存のソリューションを知っている人はいますか? 私はすでに音楽用にこれを行うさまざまな専用アプリに精通していますが、LRU ベースで通過するものをすべてキャッシュする汎用キャッシュをもっと探しています。自宅の NAS (または S3、ドロップボックス、Ubuntu One など) を Android デバイスの拡張機能にしたいと考えています。

存在しない場合、ContentProvider をチェーンすることは可能ですか? 現在キャッシュに何があり、何がキャッシュにないかを追跡する CacheProvider を作成し、CacheProvider の URI を使用して MediaStore に入力することはできますか? これまでに見つけたすべての例は、MediaStore から出力されるものは常にファイルへの URI であることを示しているため、現時点では不可能であると思われます。

4

1 に答える 1

0

少しのPOCの後、これはContentProvidersだけを使用しては不可能であるように見えます。ContentProvider.openfile()をオーバーライドすると、プロバイダーをチェーン化することは可能ですが、MediaProviderは現在、_data内のすべてがファイルまたはHTTPストリームを指していると想定しているため、ミュージックアプリは別のコンテンツURIを貼り付けるコンテンツの再生に失敗します_データ。MediaProviderがコンテンツURIを処理するように変更された場合、これは可能ですが、それを実現する唯一の方法は、MediaStoreフレームワークをコピーして貼り付けてすべての名前を変更するか、mod(CyanogenModなど)で変更を行うことだと思います。

于 2012-08-13T09:56:33.733 に答える