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();
}
```java
在这里插入代码片

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

建立连接

mConnection = new MediaScannerConnection(mContext, this);

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

更新媒体数据库

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

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

断开连接

mConnection.disconnect();

	 
-----------------------------------------

```java
在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值