Androidアプリで撮った写真や動画を反映させる
なんかAndroidアプリで動画に関するアプリケーション作っているのですが,Galleryに反映させるようにするにはある記述を書かないとリアルタイムに反映されません.
わかりやすいサイトがちょっと少なかったのでまとめがてら...
今回はクラスにしておきました.(クラス化する必要もないけどね)
package test.preview.movie; import android.content.Context; import android.media.MediaScannerConnection; import android.media.MediaScannerConnection.OnScanCompletedListener; import android.net.Uri; import android.util.Log; public class MediaGalleryReflect { public MediaGalleryReflect(Context context, String[] paths, String[] mineType, String fileName) { OnScanCompletedListener mScanCompletedListener = new OnScanCompletedListener() { @Override public void onScanCompleted(String path, Uri uri) { Log.d("MediaScannerConnection", "-> Scanned path = " + path + ":"); Log.d("MediaScannerConnection", "-> uri = " + uri); } }; MediaScannerConnection.scanFile(context, paths, mineType, mScanCompletedListener); } }
このクラスのオブジェクトを生成してください.
String[] paths = { Environment.getExternalStorageDirectory() + "/" + this.fileName }; String[] mineType = { "movie/mp4" }; //ここは自分が読み込ませたいTypeを記述するので各自調べて new MediaGalleryReflect(this.context, paths, mineType, this.fileName);
基本的にはこれでpathが合ってればロードできます.
注意すべきことはcontextを場所で呼んであげることです.
context呼べない場所で使いたいんだけど!(つまり自分が作ったクラスとか)
そういう時はクラスのオブジェクトを生成する時に引数で渡すとかしてあげてください.
LogがLogCatとかに出力されてないときはスキャンされてませんので確認する必要があります.
pruneでした