gpt4 book ai didi

java - 如何获取有关用户选择的音频文件的信息? (使用 SAF 和 MediaStore)

转载 作者:行者123 更新时间:2023-12-01 18:47:48 26 4
gpt4 key购买 nike

我无法理解如何从 MediaStore 请求有关文件(由用户选择)的数据.

1)我像这样打开文件选择器

public static void launchPicker(Fragment f) {
Intent pickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickerIntent.setType("audio/mpeg");
pickerIntent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
pickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
f.startActivityForResult(pickerIntent, REQUEST_CODE);
}

2)从intent中获取数据

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
//multiselection only
ClipData clipData = data.getClipData();
if (clipData != null) {
List<Uri> results = new ArrayList<>();
for(int i = 0; i < clipData.getItemCount(); i++) {
Uri uri = clipData.getItemAt(i).getUri();
if (uri != null) {
results.add(uri);
}
}
//TODO process result
}
}
}

3) 现在我有了 DocumentUris 列表。我的下一步应该是什么?

MediaSoter 可以通过 Mediastore.getDocumentUri() 将 mediaUri 转换为 documentUri ,但我找不到将 documentUri 转换为 mediaUri 的方法。

我想从 MediaStore 获取这些字段:MediaStore.Audio.Media._ID , ALBUM_ID , ARTIST_ID .

最佳答案

我这样做:

Uri documentUri = DocumentsContract.buildDocumentUriUsingTree(mUri,
documentId);
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(mContext,documentUri);
String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
String album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
String track = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
String duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
String year = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);

关于java - 如何获取有关用户选择的音频文件的信息? (使用 SAF 和 MediaStore),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com