android媒体库更新问题,即自定义拍摄视频拍摄完毕,无法立即查看拍摄视频文件问题

在项目中,自定义拍摄视频界面,在sd卡根目录存放一些视频文件,比如:我在SD卡中通过自定义拍摄视频刚拍摄完视频,sd根目录里面放入了视频文件,那么,这个时候我立马跳转去Gallery里面查看,选择这个目录里的视频,那么,我是无法看到的。

 

这是什么原因呢?


因为android系统在启动的时候会启动MediaScannerService扫描系统上的多媒体文件,然后将这些多媒体文件的信息加入到多媒体数据库中,应用程序要取得这些多媒体信息就是从这个多媒体数据库里面去取的,并不是从SD卡中取。也就是说,如果开机后增加或删除了一些多媒体,这个多媒体数据库是不会自动刷新的

解决办法:1.重启手机,很明显,在项目中,这个是不可行的

2.更新媒体库

更新媒体库网上常见的方法是通过发送消息给系统,更细媒体库,但是自从版本号19后,即android4.4开始,不再允许非系统应用发送系统消息,而前面所说的发送消息正是系统消息,即该方法失效。解决办法如下:例如更新sd卡根目录:updateMediaDataBase(Environment.getExternalStorageDirectory().getAbsolutePath());//更新媒体库

private void updateMediaDataBase(String filename) {
int currentApiVersion = android.os.Build.VERSION.SDK_INT;// 获得当前sdk版本
if (currentApiVersion < 19) {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + filename)));
} else {
MediaScannerConnection.scanFile(this, new String[] { filename },
null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值