Skip to content

Commit 403e6ec

Browse files
author
lizixian
committed
完善 getNowPlayingSongInfo 方法
1 parent ca63ec8 commit 403e6ec

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

starrysky/src/main/java/com/lzx/starrysky/manager/MusicManager.java

+23-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static void initMusicManager(Context context) {
5555
/**
5656
* 设置图片加载器
5757
*/
58-
public static void setImageLoader(ILoaderStrategy loader){
58+
public static void setImageLoader(ILoaderStrategy loader) {
5959
ImageLoader.getInstance().setGlobalImageLoader(loader);
6060
}
6161

@@ -340,11 +340,33 @@ public SongInfo getNowPlayingSongInfo() {
340340
if (metadataCompat != null) {
341341
String songId = metadataCompat.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID);
342342
songInfo = MusicProvider.getInstance().getSongInfo(songId);
343+
//播放列表改变了或者清空了,如果还在播放歌曲,这时候 getSongInfo 就会获取不到,
344+
//此时需要从 metadataCompat 中获取
345+
if (songInfo == null && !TextUtils.isEmpty(songId)) {
346+
songInfo = getSongInfoFromMediaMetadata(metadataCompat);
347+
}
343348
}
344349
}
345350
return songInfo;
346351
}
347352

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+
348370
/**
349371
* 获取当前播放的歌曲songId
350372
*/

0 commit comments

Comments
 (0)