我录制了一首音乐并在dir中保存为.amr
File parent = context.getExternalFilesDir(null).
File dir = new File(parent , "voice");
if(!dir.exists()){
dir.mkdirs();
}
我想获得音频的长度。所以我使用
MediaScannerConnection.scanFile(context,
new String[]{file.getAbsolutePath()}, new String[]{"audio/amr"} ,
new OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
LogUtil.w("TAG" , "path = "+path);
LogUtil.w("TAG" , "uri = "+uri);
}
}
);
但是,日志显示
04-16 16:29:53.893 24364-25296/com.wxy.gudong.client.debug W/TAG﹕ path = /storage/sdcard/Android/data/com.wxy.gudong.client.debug/files/voice/bbb664e8-6ddf-47d6-87ed-cf9867e77a75audio.amr
04-16 16:29:53.893 24364-25296/com.wxy.gudong.client.debug W/TAG﹕ uri = content://media/external/file/3858
扫描成功,但扫描仪将音频视为文件而非音频。 我无法通过
获取音频信息Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null, MediaStore.Audio.Media.DATA + "=?",
new String[]{file.getAbsolutePath()},
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
为什么dir中的音频文件不被视为音频。我该怎么做才能获得音频长度。
谢谢!