怎么从自己设置的音频文件目录,得到文件,将信息存储入,数据库。
我现在扫描就用的是,在andoird端录制语音后,存储入指定的文件包里。然后,现在是想从那个包里循环出来那个文件的信息哈。
这是写的本地路径
这是在音频服务中 调用的路径 定义
private final String PATH_PRIVATE_CATALOG= TuyuRecordPathConst.AUDIO_PATH;
scanTuyu(PATH_PRIVATE_CATALOG);
private void scanTuyu(String path) {
/**
* 文件结构
* SDcard:是文件夹吗? 是文件夹就 继续listPath,直到变成文件
* 不是文件夹 则-->endWith(mp3) 结尾是mp3,那就是了
* 搜索是根据文件夹的目录来的
* */
//这里的path是上面 内存卡根目录PATH_SDCARD = getSDCardPath()
File file = new File(path + "/");// 斜杠是Tuyu下面一级,方便定位
//如果为空,就不继续下去了
if (file == null) {
return;
}
//拿到当前列表
File[] files = file.listFiles();
//如果files不为空,则遍历。 是数组则length
if (files != null) {
for (File value : files) {
//是否是文件夹,目录
if (value.isDirectory()) {
//
scanTuyu(value.getPath());
} else {
//最后如果是mp3,就可以解析了 if (files[i].getName().endsWith(".mp3")
// || files[i].getName().endsWith(".wav"))
if (value.getName().endsWith(".mp3") | value.getName().endsWith(".amr")) {
//是土语了,就解析 要绝对路径。
parsingMediaTuyu(value.getAbsolutePath());
}
}
}
}
}
有点不明白需求...你这不是得到文件的路径什么了吗,是要问怎么存数据库?
还有提示下:Android11开始,存储分区咯,不要直接用Environment.getExternalStorageDirectory()
要么直接存私有目录:context.getExternalFilesDir或context.getExternalCacheDir()
要么存公共目录:context.getContentResolver().insert(@RequiresPermission.Write @NonNull Uri url,@Nullable ContentValues values)
已经存进去了,也知道了文件目录的路径,写个读取目录中文件的方法逐个遍历目录下的文件读取信息然后存到数据库就行了啊。
你想在数据库存什么 ?
存音频地址吗?
你是想在这个函数的基础上补充一些,然后获得所有音频文件的路径等信息吗?
这样的话你可能需要调整一下parsingMediaTuyu这个方法,将指定路径的文件获取相关信息并返回,并将返回结果存储到List返回
文件信息具体是什么信息?你代码路径已经拿到了,文件大小的话也有File io接口,文件内容的话,路径已经有了,开线程读文件即可