Example usage for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE

List of usage examples for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE

Introduction

In this page you can find the example usage for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE.

Prototype

String METADATA_KEY_DISPLAY_SUBTITLE

To view the source code for android.support.v4.media MediaMetadataCompat METADATA_KEY_DISPLAY_SUBTITLE.

Click Source Link

Document

A subtitle that is suitable for display to the user.

Usage

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());
                }
            });
}