我知道从您的应用程序下载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_name,ARTIST,ALBUM,Title.
有没有办法告诉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替换为您的活动名称.
总结以上是内存溢出为你收集整理的android – 将MP3添加到ContentResolver全部内容,希望文章能够帮你解决android – 将MP3添加到ContentResolver所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)