0

我有一个Android可以录制和播放音频的应用程序。Walkman我的录音有问题,android默认音频播放器(在我的情况下)无法立即识别它们。此外,当我将手机连接到 PC 时,计算机的资源管理器看不到录音。我应该将每个录音添加到Media Store? 如果是,我应该如何通过不触发整个SD卡扫描来做到这一点,而只将记录本身包含到Media Server数据库中?

如果可能的话,我想避免使用下面的行,因为我认为会触发整个SD卡被扫描,所以这会耗尽电池:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
4

1 回答 1

0

我已经设法解决了。从“ Android 中的 SD 卡”中获取一些代码

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) {
    }

}
于 2013-06-21T10:44:49.743 回答