扫描context.getExternalFilesDir中的音频文件

时间:2015-04-16 08:34:42

标签: android

我录制了一首音乐并在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中的音频文件不被视为音频。我该怎么做才能获得音频长度。

谢谢!

0 个答案:

没有答案