gpt4 book ai didi

android - 将 mp3 添加到 ContentResolver

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:08 24 4
gpt4 key购买 nike

我知道从您的应用程序下载 mp3 后,您需要将它添加到 ContentResolver 才能在音乐播放器上看到它。我正在使用以下代码进行操作:

    private void addFileToContentProvider() {
ContentValues values = new ContentValues(7);

values.put(Media.DISPLAY_NAME, "display_name");
values.put(Media.ARTIST, "artist");
values.put(Media.ALBUM, "album");
values.put(Media.TITLE, "Title");
values.put(Media.MIME_TYPE, "audio/mp3");
values.put(Media.IS_MUSIC, true);
values.put(Media.DATA, pathToFile);

context.getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);

}

我的问题是我愿意避免手动设置DISPLAY_NAMEARTISTALBUMTITLE .

有没有办法告诉 Android 从文件中做到这一点?我已经使用了 values.put(Media.DATA, pathToFile); 但它没有将它添加到播放器。

有没有办法强制线程扫描 sd 中的音乐?

最佳答案

首先尝试添加这个:

values.put(MediaStore.Audio.Media.IS_MUSIC, true);

然后试试这个:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));

如果还是不行,试试这个:

public MediaScannerConnection mScanner = null;

public void reScan(String filename){
final String name = filename;
mScanner = new MediaScannerConnection(THE_NAME_OF_YOUR_ACTIVITY.this, new MediaScannerConnection.MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
mScanner.scanFile(name, null);
}
public void onScanCompleted(String path, Uri uri) {
if (path.equals(name)) {
mScanner.disconnect();
}
}
});
mScanner.connect();
}

添加一个mp3后,调用这个方法,输入文件名。

并确保将 THE_NAME_OF_YOUR_ACTIVITY 替换为您的 Activity 名称。

关于android - 将 mp3 添加到 ContentResolver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3735771/

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