.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI, Uri.parse(mediaId).toString()) .build(); final MediaItem mediaItem = new MediaItem(metadataCompat.getDescription(), flag); mediaItems.put(mediaId, mediaItem);
public MediaControllerCompatAssert hasDuration(long duration) { isNotNull(); long actualDuration = actual.getMetadata().getLong(MediaMetadataCompat.METADATA_KEY_DURATION); assertThat(actualDuration) // .overridingErrorMessage("Expected duration <%s> but was <%s>.", duration, actualDuration) // .isEqualTo(duration); return this; }
return null; MediaDescriptionCompat description = mMetadata.getDescription(); Bitmap art = mMetadata.getBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART); Class clazz = NotificationUtils.getTargetClass(mConstructor.getTargetClass()); if (clazz != null) { String songId = mMetadata.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID); notificationBuilder.setContentIntent(NotificationUtils.createContentIntent(mService, mConstructor, songId, null, clazz));
for (String key : keySet()) { Integer type = METADATA_KEYS_TYPE.get(key); if (type != null) { case METADATA_TYPE_BITMAP: MediaMetadataCompatApi21.Builder.putBitmap(builderObj, key, getBitmap(key)); break; case METADATA_TYPE_LONG: MediaMetadataCompatApi21.Builder.putLong(builderObj, key, getLong(key)); break; case METADATA_TYPE_RATING: MediaMetadataCompatApi21.Builder.putRating(builderObj, key, getRating(key).getRating()); break; case METADATA_TYPE_TEXT: MediaMetadataCompatApi21.Builder.putText(builderObj, key, getText(key)); break;
return null; MediaDescriptionCompat description = mMetadata.getDescription(); String songId = mMetadata.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID); int smallIcon = mConstructor.getSmallIconRes() != -1 ? mConstructor.getSmallIconRes() : R.drawable.ic_notification;
private Object fullDescription(MediaMetadataCompat metadata) { Bundle bundle = metadata.getDescription().getExtras(); if (bundle != null) { bundle.putAll(metadata.getBundle()); } return bundle; }
/** * 根据id获取对应的MediaMetadataCompat对象 */ public MediaMetadataCompat getMusic(String songId) { MediaMetadataCompat music = null; for (MediaMetadataCompat data : metadatas) { if (data != null && data.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID).equals(songId)) { music = data; break; } } return music; }
mService.getString(R.string.label_next), mNextIntent); MediaDescriptionCompat description = mMetadata.getDescription(); Bitmap audioAlbumArt = mMetadata.getBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART); if (audioAlbumArt == null) {
public static MediaMetadataCompat getMetadata(Context context, String mediaId) { MediaMetadataCompat metadataWithoutBitmap = music.get(mediaId); Bitmap albumArt = getAlbumBitmap(context, mediaId); // Since MediaMetadataCompat is immutable, we need to create a copy to set the album art. // We don't set it initially on all items so that they don't take unnecessary memory. MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder(); for (String key : new String[]{ MediaMetadataCompat.METADATA_KEY_MEDIA_ID, MediaMetadataCompat.METADATA_KEY_ALBUM, MediaMetadataCompat.METADATA_KEY_ARTIST, MediaMetadataCompat.METADATA_KEY_GENRE, MediaMetadataCompat.METADATA_KEY_TITLE }) { builder.putString(key, metadataWithoutBitmap.getString(key)); } builder.putLong( MediaMetadataCompat.METADATA_KEY_DURATION, metadataWithoutBitmap.getLong(MediaMetadataCompat.METADATA_KEY_DURATION)); builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, albumArt); return builder.build(); }
boolean isDark = mColorUtils.isDarkNotificationBar(mService, notification); Bitmap art = mMetadata.getBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART); String artistName = songInfo != null ? songInfo.getArtist() : ""; String songName = songInfo != null ? songInfo.getSongName() : "";
private void updateFavoriteAction() { Log.d(TAG, "updateFavoriteAction"); String favoriteLabel; int favoriteIcon; RatingCompat rating = mMetadata.getRating(MediaMetadataCompat.METADATA_KEY_USER_RATING); if (rating != null && rating.hasHeart()) { favoriteLabel = mService.getString(R.string.playback_unfavorite); favoriteIcon = R.drawable.ic_action_favorites_small_underlined; } else { favoriteLabel = mService.getString(R.string.playback_favorite); favoriteIcon = R.drawable.ic_action_favorites_small; } if (mFavoriteAction == null) { mFavoriteAction = new NotificationCompat.Action.Builder(favoriteIcon, favoriteLabel, mIntents.get(favoriteIcon)).build(); } else { mFavoriteAction.icon = favoriteIcon; mFavoriteAction.title = favoriteLabel; mFavoriteAction.actionIntent = mIntents.get(favoriteIcon); } }
@Override public void onMetadataChanged(MediaMetadataCompat mediaMetadata) { if (mediaMetadata == null) { return; } mTitleTextView.setText( mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_TITLE)); mArtistTextView.setText( mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_ARTIST)); mAlbumArt.setImageBitmap(MusicLibrary.getAlbumBitmap( MainActivity.this, mediaMetadata.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID))); }
/** * 获取 List#MediaBrowserCompat.MediaItem 用于 onLoadChildren 回调 */ public List<MediaBrowserCompat.MediaItem> getChildrenResult(String mediaId) { List<MediaBrowserCompat.MediaItem> mediaItems = new ArrayList<>(); for (MediaMetadataCompat metadata : metadatas) { MediaBrowserCompat.MediaItem mediaItem = new MediaBrowserCompat.MediaItem( metadata.getDescription(), MediaBrowserCompat.MediaItem.FLAG_PLAYABLE); mediaItems.add(mediaItem); } return mediaItems; }
@SuppressLint("WrongConstant") public Station (MediaMetadataCompat stationMediaMetadata) { mStationName = stationMediaMetadata.getString(METADATA_KEY_TITLE); mStreamUri = Uri.parse(stationMediaMetadata.getString(METADATA_KEY_MEDIA_URI)); mPlayback = PLAYBACK_STATE_STOPPED; if (stationMediaMetadata.getString(METADATA_CUSTOM_KEY_IMAGE_FILE) != null) { mStationImageFile = new File(stationMediaMetadata.getString(METADATA_CUSTOM_KEY_IMAGE_FILE)); mStationImageSize = mStationImageFile.length(); } if (stationMediaMetadata.getString(METADATA_CUSTOM_KEY_PLAYLIST_FILE) != null) { mStationPlaylistFile = new File(stationMediaMetadata.getString(METADATA_CUSTOM_KEY_PLAYLIST_FILE)); } // mPlaylistFileContent = ""; // mMetadata = ""; // mMimeType = ""; // mChannelCount = 0; // mSampleRate = 0; // mBitrate = 0; // mStationFetchResults = null; }
@Override public void onMetadataChanged(MediaMetadataCompat metadata) { super.onMetadataChanged(metadata); final int max = metadata != null ? (int) metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION) : 0; setProgress(0); setMax(max); }
public static List<MediaBrowserCompat.MediaItem> getMediaItems() { List<MediaBrowserCompat.MediaItem> result = new ArrayList<>(); for (MediaMetadataCompat metadata : music.values()) { result.add( new MediaBrowserCompat.MediaItem( metadata.getDescription(), MediaBrowserCompat.MediaItem.FLAG_PLAYABLE)); } return result; }
private synchronized void retrieveStations(Context context) { if (mCurrentState == State.NON_INITIALIZED) { mCurrentState = State.INITIALIZING; ArrayList<Station> stationList = StationListHelper.loadStationListFromStorage(context); if (stationList != null) { for (Station station : stationList) { MediaMetadataCompat item = buildMediaMetadata(station); String mediaId = item.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID); mStationListById.put(mediaId, item); } } mCurrentState = State.INITIALIZED; } }
public void updateMetadata(MediaMetadataCompat metadata) { mCurrentDuration = metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION); mProgressBarUpdater.setCurrentDuration(mCurrentDuration); mCurrentTimeTextView.setText(ViewUtils.durationToString(0)); updateTextViewCompleteTime(); updateText(); updateImageViews(); }
public Notification getNotification(MediaMetadataCompat metadata, @NonNull PlaybackStateCompat state, MediaSessionCompat.Token token) { boolean isPlaying = state.getState() == PlaybackStateCompat.STATE_PLAYING; MediaDescriptionCompat description = metadata.getDescription(); NotificationCompat.Builder builder = buildNotification(state, token, isPlaying, description); return builder.build(); }
@Override public void onPlayFromSearch(String query, Bundle extras) { // handle requests to begin playback from a search query (eg. Assistant, Android Auto, etc.) LogHelper.i(LOG_TAG, "playFromSearch query=" + query + " extras="+ extras); if (TextUtils.isEmpty(query)) { // user provided generic string e.g. 'Play music' mStation = new Station(mStationListProvider.getFirstStation()); } else { // try to match station name and voice query for (MediaMetadataCompat stationMetadata : mStationListProvider.getAllStations()) { String[] words = query.split(" "); for (String word : words) { if (stationMetadata.getString(MediaMetadataCompat.METADATA_KEY_TITLE).toLowerCase().contains(word.toLowerCase())) { mStation = new Station(stationMetadata); } } } } // start playback startPlayback(); }