@@ -55,7 +55,7 @@ public static void initMusicManager(Context context) {
55
55
/**
56
56
* 设置图片加载器
57
57
*/
58
- public static void setImageLoader (ILoaderStrategy loader ){
58
+ public static void setImageLoader (ILoaderStrategy loader ) {
59
59
ImageLoader .getInstance ().setGlobalImageLoader (loader );
60
60
}
61
61
@@ -340,11 +340,33 @@ public SongInfo getNowPlayingSongInfo() {
340
340
if (metadataCompat != null ) {
341
341
String songId = metadataCompat .getString (MediaMetadataCompat .METADATA_KEY_MEDIA_ID );
342
342
songInfo = MusicProvider .getInstance ().getSongInfo (songId );
343
+ //播放列表改变了或者清空了,如果还在播放歌曲,这时候 getSongInfo 就会获取不到,
344
+ //此时需要从 metadataCompat 中获取
345
+ if (songInfo == null && !TextUtils .isEmpty (songId )) {
346
+ songInfo = getSongInfoFromMediaMetadata (metadataCompat );
347
+ }
343
348
}
344
349
}
345
350
return songInfo ;
346
351
}
347
352
353
+ private SongInfo getSongInfoFromMediaMetadata (MediaMetadataCompat metadata ) {
354
+ SongInfo songInfo = new SongInfo ();
355
+ songInfo .setSongId (metadata .getString (MediaMetadataCompat .METADATA_KEY_MEDIA_ID ));
356
+ songInfo .setSongUrl (metadata .getString (MediaMetadataCompat .METADATA_KEY_MEDIA_URI ));
357
+ songInfo .setAlbumName (metadata .getString (MediaMetadataCompat .METADATA_KEY_ALBUM ));
358
+ songInfo .setArtist (metadata .getString (MediaMetadataCompat .METADATA_KEY_ARTIST ));
359
+ songInfo .setDuration (metadata .getLong (MediaMetadataCompat .METADATA_KEY_DURATION ));
360
+ songInfo .setGenre (metadata .getString (MediaMetadataCompat .METADATA_KEY_GENRE ));
361
+ songInfo .setSongCover (metadata .getString (MediaMetadataCompat .METADATA_KEY_ALBUM_ART_URI ));
362
+ songInfo .setAlbumCover (metadata .getString (MediaMetadataCompat .METADATA_KEY_ALBUM_ART_URI ));
363
+ songInfo .setSongName (metadata .getString (MediaMetadataCompat .METADATA_KEY_TITLE ));
364
+ songInfo .setTrackNumber ((int ) metadata .getLong (MediaMetadataCompat .METADATA_KEY_TRACK_NUMBER ));
365
+ songInfo .setAlbumSongCount ((int ) metadata .getLong (MediaMetadataCompat .METADATA_KEY_NUM_TRACKS ));
366
+ songInfo .setSongCoverBitmap (metadata .getBitmap (MediaMetadataCompat .METADATA_KEY_ALBUM_ART ));
367
+ return songInfo ;
368
+ }
369
+
348
370
/**
349
371
* 获取当前播放的歌曲songId
350
372
*/
0 commit comments