![](/img/trans.png)
[英]How to use getExternalStorageDirectory() to load multiple songs from internal storage
[英]How to get songs from Internal Storage for phone with no sdcard slot
我拥有一部没有sdcard插槽的手机,但它具有64GB的内部存储空间。 事实是,每当我使用自定义媒体播放器加载歌曲时,它只会仅加载.ogg
文件(根本不加载MP3文件),而当uri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
时,就会发生这种情况uri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
。 但是当uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
由于没有可搜索的sdcard插槽,它使应用程序崩溃。
这是我的代码,
private void loadSongs() {
Uri uri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
//Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC + "!=0";
Cursor cursor = getContentResolver().query(uri, null, selection, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String url = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
Log.i("DATA111", url);
mediaMetadataRetrieve = new MediaMetadataRetriever();
mediaMetadataRetrieve.setDataSource(url);
art = mediaMetadataRetrieve.getEmbeddedPicture();
if (art != null) {
songImage = BitmapFactory.decodeByteArray(art, 0, art.length);
}
SongInfo s = new SongInfo(name, artist, url, songImage);
_songs.add(s);
} while (cursor.moveToNext());
}
cursor.close();
songAdapter = new SongAdapter(MainActivity.this, _songs);
}
}
谁能找到我这个问题的解决方案?
Logcats结果:
I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps][DM]/01 - ZNMD - Dil Dhadakne Do [www.DJMaza.Com].mp3
I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps][DM]/02 - ZNMD - Ik Junoon (Paint It Red) [www.DJMaza.Com].mp3
/storage/emulated/0/DraStic/shaders/fxaa/fxaa.dsda:103)
运行结果:
Caused by: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
at android.media.MediaMetadataRetriever.setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:69)
at com.example.captain.mp2x.MainActivity.loadSongs(MainActivity.java:184)
at com.example.captain.mp2x.MainActivity.checkUserPermission(MainActivity.java:146)
at com.example.captain.mp2x.MainActivity.onCreate(MainActivity.java:103)
这是当Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
时记录的内容Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
:
I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/01 - ZNMD - Dil Dhadakne Do [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/02 - ZNMD - Ik Junoon (Paint It Red) [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/03 - ZNMD - Khaabon Ke Parinday [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/04 - ZNMD - Senorita [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/05 - ZNMD - Der Lagi Lekin [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/06 - ZNMD - Sooraj Ki Baahon Mein [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/07 - ZNMD - Toh Zinda Ho Tum [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/08 - ZNMD - Ik Junoon (Remix) [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/Zindagi Na Milegi Dobara [2011-MP3-VBR-320Kbps] - [DM]/09 - ZNMD - Senorita (Remix) [www.DJMaza.Com].mp3 I/DATA111: /storage/emulated/0/Download/Saints Row The Third Theme Ringtone.m4a E/MediaMetadataRetrieverJNI: getEmbeddedPicture: Call to getEmbeddedPicture failed. I/DATA111: /storage/emulated/0/MIUI/ringtone/Saints Row The Third Theme Ringtone.m4a E/MediaMetadataRetrieverJNI: getEmbeddedPicture: Call to getEmbeddedPicture failed. I/DATA111: /storage/emulated/0/DraStic/shaders/fxaa/fxaa.dsd
当它是Uri uri时= MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
它显示I/DATA111: /system/media/audio/ui/Effect_Tick.ogg E/MediaMetadataRetrieverJNI: getEmbeddedPicture: Call to getEmbeddedPicture failed.
以及许多其他.ogg文件。
检查您是否获得有效的网址。
检查文件是否存在,是否不跳过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.