我正在尝试从音频文件Uri中获取专辑封面,这是我的代码:
// uri is the audio file uripublic static Bitmap getSongCoverArt(Context context, Uri uri){ Bitmap songCoverArt = null; String[] projections = {MediaStore.Audio.Media.ALBUM_ID}; Cursor cursor = null; try { cursor = context.getContentResolver().query(uri, projections, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID); cursor.movetoFirst(); Uri songCover = Uri.parse("content://media/external/audio/albumart"); Uri uriSongCover = ContentUris.withAppendedID(songCover, column_index); Log.d(TAG, uriSongCover.toString()); ContentResolver res = context.getContentResolver(); try { inputStream in = res.openinputStream(uriSongCover); songCoverArt = BitmapFactory.decodeStream(in); }catch (fileNotFoundException e){ Log.e(TAG, e.getMessage()); } }finally { if(cursor != null){ cursor.close(); } } return songCoverArt;}
此函数始终返回“对于content:// media / external / audio / albumart / 0没有条目”
解决方法:
我认为您的问题出在appendID
Uri songCover = Uri.parse("content://media/external/audio/albumart"); Uri uriSongCover = ContentUris.withAppendedID(songCover, column_index)
用专辑的Long _ID代替column_index,而不是_ID为0的列索引.
album_ID = c.getLong(c.getColumnIndex(MediaStore.Audio.Albums._ID));
c是我的光标
总结以上是内存溢出为你收集整理的android-从音频文件Uri获取专辑封面全部内容,希望文章能够帮你解决android-从音频文件Uri获取专辑封面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)