android - 获取媒体文件并显示在列表中
问题描述
我是android的初学者。根据文档“从共享存储访问媒体文件”。我想在列表中显示所有音频的名称,但它只显示一个音频。有人可以帮我解决这个问题吗?谢谢。这是我的代码。`
ArrayList<audio> arrayList = new ArrayList<audio>();
String[] projection = new String[]{
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.SIZE
};
String selection = MediaStore.Audio.Media.DURATION +
" >= ?";
String[] selectionArgs = new String[]{
String.valueOf(TimeUnit.MILLISECONDS.convert(5, TimeUnit.MINUTES))};
String sortOrder = MediaStore.Audio.Media.DISPLAY_NAME + " ASC";
try (Cursor cursor = v.getContext().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
selectionArgs,
sortOrder
)) {
int idColumn = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID);
int nameColumn =
cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
int durationColumn =
cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION);
int sizeColumn = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE);
while (cursor.moveToNext()) {
long id = cursor.getLong(idColumn);
String name = cursor.getString(nameColumn);
int duration = cursor.getInt(durationColumn);
int size = cursor.getInt(sizeColumn);
Uri contentUri = ContentUris.withAppendedId(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id);
// Stores column values and the contentUri in a local object
// that represents the media file.
arrayList.add(new audio(name));
}
}
`
解决方案
推荐阅读
- javascript - 粘性导航未正确添加活动链接
- dialogflow-es - 带有 SSML 的 Google Action 因“具有 HTML 标记”而被拒绝
- mysql - 比较两个mysql数据库使用过程添加缺少的表和列
- python - 使用调用 (ntdll.dll) 时 Python 崩溃
- c++ - 为 Visual Studio 17 使用 vc140 Boost
- html - 使用填充和替代颜色添加上划线和下划线
- php - VK api appWidgets.saveAppImage 中的 error_code 129
- c# - 支持 TLS 1.1 和 TLS 1.2 的 Windows 8.1 应用程序
- angular - Videogular2 视频在发布时中断
- php - 按月份显示数组数据