List of usage examples for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE
String METADATA_KEY_DISPLAY_SUBTITLE
To view the source code for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE.
Click Source Link
From source file:com.scooter1556.sms.lib.android.utils.MediaUtils.java
public static MediaMetadataCompat getMediaMetadata(MediaElement mediaElement, Bitmap artwork) { if (mediaElement == null) { return null; }// w w w . j av a 2 s . co m // Update session metadata MediaMetadataCompat.Builder metadata = new MediaMetadataCompat.Builder(); metadata.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, mediaElement.getID().toString()); if (mediaElement.getArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mediaElement.getArtist()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, mediaElement.getArtist()); } if (mediaElement.getAlbum() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, mediaElement.getAlbum()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, mediaElement.getAlbum()); } if (mediaElement.getTitle() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_TITLE, mediaElement.getTitle()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mediaElement.getTitle()); } if (mediaElement.getDuration() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, mediaElement.getDuration() * 1000); } if (mediaElement.getYear() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, mediaElement.getYear()); } if (mediaElement.getGenre() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_GENRE, mediaElement.getGenre()); } if (mediaElement.getTrackNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, mediaElement.getTrackNumber()); } if (mediaElement.getDiscNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DISC_NUMBER, mediaElement.getDiscNumber()); } if (mediaElement.getAlbumArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, mediaElement.getAlbumArtist()); } if (artwork != null) { metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, artwork); metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, artwork); metadata.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, artwork); } return metadata.build(); }
From source file:com.example.android.supportv7.media.Player.java
protected void updateMetadata() { if (mMediaSession == null) { return;/*from w w w . j a v a 2s . c o m*/ } MediaMetadataCompat.Builder bob = new MediaMetadataCompat.Builder(); bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, getDescription()); bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, "Subtitle of the thing"); bob.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, "Description of the thing"); bob.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, getSnapshot()); mMediaSession.setMetadata(bob.build()); }
From source file:com.scooter1556.sms.android.utils.MediaUtils.java
public static MediaMetadataCompat getMediaMetadataCompatFromMediaElement(MediaElement mediaElement) { if (mediaElement == null) { return null; }/*w w w.j a va2 s . c o m*/ // Update session metadata MediaMetadataCompat.Builder metadata = new MediaMetadataCompat.Builder(); metadata.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, mediaElement.getID().toString()); if (mediaElement.getArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mediaElement.getArtist()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, mediaElement.getArtist()); } if (mediaElement.getAlbum() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, mediaElement.getAlbum()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, mediaElement.getAlbum()); } if (mediaElement.getTitle() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_TITLE, mediaElement.getTitle()); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mediaElement.getTitle()); } if (mediaElement.getDuration() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, Double.valueOf(mediaElement.getDuration() * 1000.0).longValue()); } if (mediaElement.getYear() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_YEAR, mediaElement.getYear()); } if (mediaElement.getGenre() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_GENRE, mediaElement.getGenre()); } if (mediaElement.getTrackNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, mediaElement.getTrackNumber()); } if (mediaElement.getDiscNumber() != null) { metadata.putLong(MediaMetadataCompat.METADATA_KEY_DISC_NUMBER, mediaElement.getDiscNumber()); } if (mediaElement.getAlbumArtist() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, mediaElement.getAlbumArtist()); } if (RESTService.getInstance().getAddress() != null) { metadata.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, RESTService.getInstance().getAddress() + "/image/" + mediaElement.getID() + "/cover"); metadata.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON_URI, RESTService.getInstance().getAddress() + "/image/" + mediaElement.getID() + "/cover"); metadata.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, RESTService.getInstance().getAddress() + "/image/" + mediaElement.getID() + "/fanart"); } return metadata.build(); }
From source file:com.example.android.AudioArchive.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromRSS(RSSItem rssItem, String genre) { String title = rssItem.getTitle(); String album = rssItem.categories.get(0).toString(); String artist = ""; if (rssItem.getDescription().contains("by")) { StringBuffer stringBuffer = new StringBuffer(rssItem.getDescription()); artist = stringBuffer.substring(stringBuffer.indexOf("by")); } else {// w w w.j a v a2 s . c om artist = "Unknown"; } String source = rssItem.getEnclosures().get(0).getLink(); String iconUrl = "https://archive.org/services/get-item-image.php?identifier=afewmoreverses_1606_librivox&mediatype=audio&collection=librivoxaudio"; String html = rssItem.getDescription(); String imgRegex = "<[iI][mM][gG][^>]+[sS][rR][cC]\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"; Pattern p = Pattern.compile(imgRegex); Matcher m = p.matcher(html); if (m.find()) { iconUrl = m.group(1); } // Since we don't have a unique ID in the server, we fake one using the hashcode of // the music source. In a real world app, this could come from the server. String id = String.valueOf(source.hashCode()); // Adding the music source to the MediaMetadata (and consequently using it in the // mediaSession.setMetadata) is not a good idea for a real world music app, because // the session metadata can be accessed by notification listeners. This is done in this // sample for convenience only. //noinspection ResourceType return new MediaMetadataCompat.Builder().putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, id) .putString(MusicProviderSource.CUSTOM_METADATA_TRACK_SOURCE, source) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, album) .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, artist) // .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, iconUrl) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, title) .putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, title) .putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, title) // .putString(MediaMetadataCompat.METADATA_KEY_GENRE, genre) .build(); }
From source file:com.example.android.leanback.PlaybackTransportControlGlueSample.java
/** * Callback function when media session's meta data is changed. * When this function is returned, the callback function onMetaDataChanged will be * executed to address the new playback state. *//*from ww w.j a v a2 s . c o m*/ private void onMediaSessionMetaDataChanged() { /** * Only update the media session's meta data when the media session is connected */ if (mMediaSessionCompat == null) { return; } MediaMetadataCompat.Builder metaDataBuilder = new MediaMetadataCompat.Builder(); // update media title if (getTitle() != null) { metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, getTitle().toString()); } if (getSubtitle() != null) { // update media subtitle metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, getSubtitle().toString()); } if (getArt() != null) { // update media art bitmap Drawable artDrawable = getArt(); metaDataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, Bitmap.createBitmap( artDrawable.getIntrinsicWidth(), artDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888)); } metaDataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, getDuration()); mMediaSessionCompat.setMetadata(metaDataBuilder.build()); }
From source file:com.bayapps.android.robophish.model.MusicProvider.java
private MediaBrowserCompat.MediaItem createBrowsableMediaItemForShow(MediaMetadataCompat show, Resources resources) {/*from w w w . jav a 2 s . com*/ String showId = show.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID); String venue = show.getString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE); String location = show.getString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE); String date = show.getString(MediaMetadataCompat.METADATA_KEY_DATE); MediaDescriptionCompat description = new MediaDescriptionCompat.Builder() .setMediaId(createMediaID(null, MEDIA_ID_TRACKS_BY_SHOW, showId)).setTitle(venue) .setSubtitle(resources.getString(R.string.browse_musics_by_genre_subtitle, date)) .setDescription(location).build(); return new MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_BROWSABLE); }
From source file:com.bayapps.android.robophish.model.MusicProvider.java
private MediaBrowserCompat.MediaItem createMediaItem(MediaMetadataCompat metadata) { // Since mediaMetadata fields are immutable, we need to create a copy, so we // can set a hierarchy-aware mediaID. We will need to know the media hierarchy // when we get a onPlayFromMusicID call, so we can create the proper queue based // on where the music was selected from (by artist, by genre, random, etc) String title = metadata.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID); String venue = metadata.getString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE); String showId = metadata.getString(MediaMetadataCompat.METADATA_KEY_COMPILATION); String hierarchyAwareMediaID = MediaIDHelper.createMediaID(metadata.getDescription().getMediaId(), MEDIA_ID_TRACKS_BY_SHOW, showId); MediaMetadataCompat copy = new MediaMetadataCompat.Builder(metadata) .putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, hierarchyAwareMediaID) .putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, venue).build(); return new MediaBrowserCompat.MediaItem(copy.getDescription(), MediaBrowserCompat.MediaItem.FLAG_PLAYABLE); }
From source file:org.chromium.chrome.browser.media.ui.NotificationMediaPlaybackControls.java
private MediaMetadataCompat createMetadata() { MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mMediaNotificationInfo.title); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, mMediaNotificationInfo.origin); metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_DISPLAY_ICON, mMediaSessionIcon); } else {//from ww w . j a v a 2 s .c o m metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, mMediaNotificationInfo.title); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mMediaNotificationInfo.origin); metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, mMediaSessionIcon); } return metadataBuilder.build(); }
From source file:org.chromium.chrome.browser.media.ui.MediaNotificationManager.java
private MediaMetadataCompat createMetadata() { MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, mMediaNotificationInfo.metadata.getTitle()); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, mMediaNotificationInfo.origin); } else {/*w ww . java2 s .com*/ metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, mMediaNotificationInfo.metadata.getTitle()); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mMediaNotificationInfo.origin); } if (!TextUtils.isEmpty(mMediaNotificationInfo.metadata.getArtist())) { metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, mMediaNotificationInfo.metadata.getArtist()); } if (!TextUtils.isEmpty(mMediaNotificationInfo.metadata.getAlbum())) { metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, mMediaNotificationInfo.metadata.getAlbum()); } return metadataBuilder.build(); }
From source file:com.example.android.sampletvinput.PlaybackOverlayFragment.java
private void updateMetadata(final Video video) { final MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder(); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_MEDIA_ID, video.id + ""); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, video.title); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, video.studio); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_DESCRIPTION, video.description); /*//w w w . j a v a 2 s. c o m long duration = Utils.getDuration(video.videoUrl); metadataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration); */ long duration = getDuration(); metadataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration); // And at minimum the title and artist for legacy support metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, video.title); metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, video.studio); Resources res = getResources(); int cardWidth = res.getDimensionPixelSize(R.dimen.playback_overlay_width); int cardHeight = res.getDimensionPixelSize(R.dimen.playback_overlay_height); Glide.with(this).load(Uri.parse(video.cardImageUrl)).asBitmap().centerCrop() .into(new SimpleTarget<Bitmap>(cardWidth, cardHeight) { @Override public void onResourceReady(Bitmap bitmap, GlideAnimation anim) { metadataBuilder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap); mSession.setMetadata(metadataBuilder.build()); } }); }