android-从音频文件Uri获取专辑封面

android-从音频文件Uri获取专辑封面,第1张

概述我正在尝试从音频文件Uri中获取专辑封面,这是我的代码://uriistheaudiofileuripublicstaticBitmapgetSongCoverArt(Contextcontext,Uriuri){BitmapsongCoverArt=null;String[]projections={MediaStore.Audio.Media.ALBUM_ID};Cursorcursor=

我正在尝试从音频文件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获取专辑封面所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存