我有一个记录和播放音频的Android
应用。我的录音有问题,Android默认音频播放器(我的情况下为Walkman
)无法立即识别它们。此外,当我将手机连接到PC时,计算机的浏览器无法看到录制内容。我应该将每个录音添加到Media Store
?如果是,我应该如何通过不触发整个SD
卡扫描,但仅将记录本身包含在Media Server
数据库中?
我想尽可能避免下面这一行,因为我认为会触发整个SD
卡被扫描,这样会耗尽电池电量:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
答案 0 :(得分:0)
我设法解决了这个问题。从“SD card in Android”
中获取了一些代码new MediaScannerWrapper(ctx, mostRecentRecording.getFullPath(), "audio/*").scan();
ctx.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + PathsHandler.getInstance().getRecordingsDirectory())));
下面是我从上面提到的帖子中获取的MediaScannerWrapper:
public class MediaScannerWrapper implements MediaScannerConnectionClient {
private MediaScannerConnection mConnection;
private String mPath;
private String mMimeType;
public MediaScannerWrapper(Context ctx, String filePath, String mime){
mPath = filePath;
mMimeType = mime;
mConnection = new MediaScannerConnection(ctx, this);
}
public void scan(){
mConnection.connect();
}
@Override
public void onMediaScannerConnected() {
mConnection.scanFile(mPath, mMimeType);
Log.d(getClass().getName(), "Media file scanned: "+mPath);
}
@Override
public void onScanCompleted(String arg0, Uri arg1) {
}
}