18.Android多媒体-录像后在手机文件夹不显示问题的解决办法

关于android录像后在手机文件夹不显示问题的解决办法

MediaScannerConnection msc = null;
ProgressDialog progressDialog = null;

public void sendVideo(String  localPath ) {
	if (TextUtils.isEmpty(localPath)) {
		return;
	}
	if (msc == null)
		msc = new MediaScannerConnection(this,
				new MediaScannerConnectionClient() {
					@Override
					public void onScanCompleted(String path, Uri uri) {
						msc.disconnect();
						//关键在于这句,如果不把这个对象置空,接下来录像也显示不出来的
						msc=null;
						
						progressDialog.dismiss();
						Log.d("path", "localPaht:" + localPath
								+ "&&&&&&path:" + path + "&&&&&&&&&&uri:"
								+ uri.getPath());
						// Toast.makeText(RecorderVideoActivity.this,
						// path+"##"+uri.getPath(), 3000).show();
						// setResult(RESULT_OK, getIntent().putExtra("uri",
						// uri));
						setResult(RESULT_OK,getIntent().putExtra("path", path));
						RecorderVideoActivity.this.finish();
					}

					@Override
					public void onMediaScannerConnected() {
						msc.scanFile(localPath, "video/*");
					}
				});

	if (progressDialog == null) {
		progressDialog = new ProgressDialog(this);
		progressDialog.setMessage("保存中...");
		progressDialog.setCancelable(false);
	}
	progressDialog.show();
	msc.connect();

}


1、MediaScannerConnection, 每当接收到新的媒体文件,都会告诉MediaProvider同步媒体数据库。

建立连接

mConnection = new MediaScannerConnection(mContext, this);

因为建立连接是一个异步过程,所以,在建立连接时需要加入一个监听器。这样,连接建立后就可以得到通知,并进行下一步。

更新媒体数据库

mConnection.scanFile(mInfo.mFilename, mInfo.mMimetype);

这也是一个异步过程,更新完毕后,监听器中得到通知,并断开连接。

断开连接

mConnection.disconnect();

我的QQ:2973901695,欢迎大家和我一起交流哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值