我相信你需要修改模型/ RemoteJSONSource.java,使其增加了MediaMetadataCompat物品进入轨道ArrayList的。
你需要创建,创建一个MediaMetadataCompat对象“buildFromJSON”的方法。请务必设置尽可能多的媒体属性。
Google示例显示了从远程JSON源添加的媒体。 在我的情况下,我已经将远程Firebase JSON加载到本地SQLite 数据库中。所以我从SQLite加载我的媒体。为此,我修改了 buildFromJson为buildFromEpisodesCursor,并适当地更改了内容。 (火力地堡可以发送JSON更新如果媒体更改SQLite的。)下面是关键代码块的一个片段:
public class RemoteJSONSource implements MusicProviderSource {
@Override
public Iterator<MediaMetadataCompat> iterator() {
ArrayList<MediaMetadataCompat> tracks = new ArrayList<>();
EpisodesCursor episodesCursor = getEpisodes();
if (episodesCursor != null) {
while (episodesCursor.moveToNext()) {
tracks.add(buildFromEpisodesCursor(episodesCursor));
}
episodesCursor.close();
}
return tracks.iterator();
}
private MediaMetadataCompat buildFromEpisodesCursor(EpisodesCursor episodesCursor) {
// INITIALIZE THE VARIOUS MEDIA DATA ITEMS YOU NEED HERE (ommitted)
MediaMetadataCompat theMetadata = new MediaMetadataCompat.Builder()
.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id)
.putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, episodeDownloadUrl)
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, episodeTitle)
.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist)
.putString(MediaMetadataCompat.METADATA_KEY_WRITER, episodeWriter)
.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration)
.putString(MediaMetadataCompat.METADATA_KEY_DATE, airdate)
.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, airdate_year)
.putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre)
.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, iconBitmap)
.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl)
.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, episodeTitle)
.putString(MediaMetadataCompat.METADATA_KEY_TITLE, episodeTitle)
.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, episodeDescription)
.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, episodeNumber)
.putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount)
.putRating(MediaMetadataCompat.METADATA_KEY_RATING, ratingCompat)
.build();
return theMetadata;
}
...
}
UTUBE视频与键模式:
https://www.youtube.com/watch?v=iIKxyDRjecU
https://www.youtube.com/watch?v=XQwe30cZffg
https://www.youtube.com/watch?v=FBC1FgWe5X4&utm_campaign=adp_series_mediabrowserservicecompat_030116&utm_source=medium&utm_medium=blog