类android.media.MediaMetadata源码实例Demo

下面列出了怎么用android.media.MediaMetadata的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: tv-samples   文件: MusicPlaybackService.java
private void updateMediaSessionMetaData() {
    if (mCurrentMediaItem == null) {
        throw new IllegalArgumentException(
                "mCurrentMediaItem is null in updateMediaSessionMetaData!");
    }
    MediaMetadataCompat.Builder metaDataBuilder = new MediaMetadataCompat.Builder();
    if (mCurrentMediaItem.getMediaTitle() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE,
                mCurrentMediaItem.getMediaTitle());
    }
    if (mCurrentMediaItem.getMediaAlbumName() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_ALBUM,
                mCurrentMediaItem.getMediaAlbumName());
    }
    if (mCurrentMediaItem.getMediaArtistName() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_ARTIST,
                mCurrentMediaItem.getMediaArtistName());
    }
    if (mCurrentMediaItem.getMediaAlbumArtResId() != 0) {
        Bitmap albumArtBitmap = BitmapFactory.decodeResource(getResources(),
                mCurrentMediaItem.getMediaAlbumArtResId());
        metaDataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArtBitmap);
    }
    mMediaSession.setMetadata(metaDataBuilder.build());
}
 
源代码2 项目: music_player   文件: PlayService.java
@Override
        public boolean onException(Exception e, Object model, Target target, boolean isFirstResource) {
            BitmapDrawable resourceDrawable = (BitmapDrawable) getDrawable(R.drawable.default_album);
            Bitmap resource = resourceDrawable.getBitmap();
            albumNow = resource;
            mediaSession.setMetadata(new MediaMetadata.Builder()
                    .putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumNow)
                    .putString(MediaMetadata.METADATA_KEY_ARTIST, singerNow)
                    .putString(MediaMetadata.METADATA_KEY_TITLE, titleNow)
                    .build());
//            PlaybackState.Builder stateBuilder = new PlaybackState.Builder();
//            stateBuilder.setState(PlaybackState.STATE_PLAYING, mediaPlayer.getCurrentPosition(), 1.0f);
//            mediaSession.setPlaybackState(stateBuilder.build());
            buildNotification(MyConstant.playing);
            return false;
        }
 
源代码3 项目: AsteroidOSSync   文件: MediaService.java
@Override
public void onMetadataChanged(MediaMetadata metadata) {
    super.onMetadataChanged(metadata);

    if (metadata != null) {
        mDevice.write(mediaArtistCharac,
                getTextAsBytes(metadata, MediaMetadata.METADATA_KEY_ARTIST),
                MediaService.this);

        mDevice.write(mediaAlbumCharac,
                getTextAsBytes(metadata, MediaMetadata.METADATA_KEY_ALBUM),
                MediaService.this);

        mDevice.write(mediaTitleCharac,
                getTextAsBytes(metadata, MediaMetadata.METADATA_KEY_TITLE),
                MediaService.this);
    }
}
 
源代码4 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata() {
  MediaMetadata input =
      new MediaMetadata.Builder()
          .putString(MediaMetadata.METADATA_KEY_TITLE, "Title")
          .putString(MediaMetadata.METADATA_KEY_ARTIST, "Artist")
          .putString(MediaMetadata.METADATA_KEY_ALBUM, "Album")
          .putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, "Album Artist")
          .putBitmap(MediaMetadata.METADATA_KEY_ART, EMPTY_BITMAP)
          .putLong(MediaMetadata.METADATA_KEY_DURATION, 10000)
          .build();

  Track output = Track.fromMediaMetadata(input);

  assertThat(output.track()).isEqualTo("Title");
  assertThat(output.artist()).isEqualTo("Artist");
  assertThat(output.albumArtist()).hasValue("Album Artist");
  assertThat(output.art()).isPresent();
  assertThat(output.duration()).hasValue((long) 10000);
}
 
源代码5 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_generatesInvalidTrackWhenNoArtistOrTitle() {
  MediaMetadata empty = new MediaMetadata.Builder().build();
  MediaMetadata noTitle =
      new MediaMetadata.Builder().putString(MediaMetadata.METADATA_KEY_ARTIST, "Artist").build();
  MediaMetadata noArtist =
      new MediaMetadata.Builder().putString(MediaMetadata.METADATA_KEY_TITLE, "Title").build();

  Track output1 = Track.fromMediaMetadata(empty);
  Track output2 = Track.fromMediaMetadata(noTitle);
  Track output3 = Track.fromMediaMetadata(noArtist);

  assertThat(output1.isValid()).isFalse();
  assertThat(output2.isValid()).isFalse();
  assertThat(output3.isValid()).isFalse();
}
 
源代码6 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_translatesShortDurationsToMilliseconds() {
  long threeMinutesSeconds = 4 * 60;
  long threeMinutesMs = 4 * 60 * 1000;
  MediaMetadata millisecondsInput =
      new MediaMetadata.Builder()
          .putLong(MediaMetadata.METADATA_KEY_DURATION, threeMinutesMs)
          .build();
  MediaMetadata secondsInput =
      new MediaMetadata.Builder()
          .putLong(MediaMetadata.METADATA_KEY_DURATION, threeMinutesSeconds)
          .build();

  Track output1 = Track.fromMediaMetadata(millisecondsInput);
  Track output2 = Track.fromMediaMetadata(secondsInput);

  assertThat(output1.duration()).hasValue(threeMinutesMs);
  assertThat(output2.duration()).hasValue(threeMinutesMs);
}
 
源代码7 项目: leanback-showcase   文件: MusicPlaybackService.java
private void updateMediaSessionMetaData() {
    if (mCurrentMediaItem == null) {
        throw new IllegalArgumentException(
                "mCurrentMediaItem is null in updateMediaSessionMetaData!");
    }
    MediaMetadataCompat.Builder metaDataBuilder = new MediaMetadataCompat.Builder();
    if (mCurrentMediaItem.getMediaTitle() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE,
                mCurrentMediaItem.getMediaTitle());
    }
    if (mCurrentMediaItem.getMediaAlbumName() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_ALBUM,
                mCurrentMediaItem.getMediaAlbumName());
    }
    if (mCurrentMediaItem.getMediaArtistName() != null) {
        metaDataBuilder.putString(MediaMetadata.METADATA_KEY_ARTIST,
                mCurrentMediaItem.getMediaArtistName());
    }
    if (mCurrentMediaItem.getMediaAlbumArtResId() != 0) {
        Bitmap albumArtBitmap = BitmapFactory.decodeResource(getResources(),
                mCurrentMediaItem.getMediaAlbumArtResId());
        metaDataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArtBitmap);
    }
    mMediaSession.setMetadata(metaDataBuilder.build());
}
 
源代码8 项目: android-music-player   文件: MusicLibrary.java
public static MediaMetadata getMetadata(Context ctx, String mediaId) {
    MediaMetadata metadataWithoutBitmap = music.get(mediaId);
    Bitmap albumArt = getAlbumBitmap(ctx, mediaId);

    // Since MediaMetadata 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
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    for (String key: new String[]{MediaMetadata.METADATA_KEY_MEDIA_ID,
            MediaMetadata.METADATA_KEY_ALBUM, MediaMetadata.METADATA_KEY_ARTIST,
            MediaMetadata.METADATA_KEY_GENRE, MediaMetadata.METADATA_KEY_TITLE}) {
        builder.putString(key, metadataWithoutBitmap.getString(key));
    }
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION,
            metadataWithoutBitmap.getLong(MediaMetadata.METADATA_KEY_DURATION));
    builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArt);
    return builder.build();
}
 
源代码9 项目: android-music-player   文件: MusicLibrary.java
private static void createMediaMetadata(String mediaId, String title, String artist,
            String album, String genre, long duration, int musicResId, int albumArtResId,
            String albumArtResName) {
    music.put(mediaId,
            new MediaMetadata.Builder()
            .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId)
            .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
            .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
            .putLong(MediaMetadata.METADATA_KEY_DURATION, duration * 1000)
            .putString(MediaMetadata.METADATA_KEY_GENRE, genre)
            .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_TITLE, title)
            .build());
    albumRes.put(mediaId, albumArtResId);
    musicRes.put(mediaId, musicResId);
}
 
源代码10 项目: android-music-player   文件: MusicLibrary.java
public static MediaMetadata getMetadata(Context ctx, String mediaId) {
    MediaMetadata metadataWithoutBitmap = music.get(mediaId);
    Bitmap albumArt = getAlbumBitmap(ctx, mediaId);

    // Since MediaMetadata 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
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    for (String key: new String[]{MediaMetadata.METADATA_KEY_MEDIA_ID,
            MediaMetadata.METADATA_KEY_ALBUM, MediaMetadata.METADATA_KEY_ARTIST,
            MediaMetadata.METADATA_KEY_GENRE, MediaMetadata.METADATA_KEY_TITLE}) {
        builder.putString(key, metadataWithoutBitmap.getString(key));
    }
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION,
            metadataWithoutBitmap.getLong(MediaMetadata.METADATA_KEY_DURATION));
    builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArt);
    return builder.build();
}
 
源代码11 项目: android-music-player   文件: MusicLibrary.java
private static void createMediaMetadata(String mediaId, String title, String artist,
            String album, String genre, long duration, int musicResId, int albumArtResId,
            String albumArtResName) {
    music.put(mediaId,
            new MediaMetadata.Builder()
            .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId)
            .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
            .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
            .putLong(MediaMetadata.METADATA_KEY_DURATION, duration * 1000)
            .putString(MediaMetadata.METADATA_KEY_GENRE, genre)
            .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_TITLE, title)
            .build());
    albumRes.put(mediaId, albumArtResId);
    musicRes.put(mediaId, musicResId);
}
 
源代码12 项目: Botifier   文件: AvrcpService5.java
public void showNotify(String artist, String album, String title, int tracknr) {
       PlaybackState state = new PlaybackState.Builder()
               .setActions(
                       PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PLAY_PAUSE |
                               PlaybackState.ACTION_PLAY_FROM_MEDIA_ID | PlaybackState.ACTION_PAUSE |
                               PlaybackState.ACTION_SKIP_TO_NEXT | PlaybackState.ACTION_SKIP_TO_PREVIOUS)
               .setState(PlaybackState.STATE_PLAYING, 1, 1, SystemClock.elapsedRealtime())
               .build();
       MediaMetadata metadata = new MediaMetadata.Builder()
               .putString(MediaMetadata.METADATA_KEY_TITLE, title)
               .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
               .putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, artist)
               .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
               .putLong(MediaMetadata.METADATA_KEY_NUM_TRACKS, tracknr)
               .putLong(MediaMetadata.METADATA_KEY_DURATION, 10)
               .build();
       mMediaSession.setActive(true);
       mMediaSession.setMetadata(metadata);
       mMediaSession.setPlaybackState(state);
	int timeout = getTimeout();
	if (timeout != 0) {
		mHandler.removeMessages(HANDLER_WHAT_CLEAR);
		mHandler.sendEmptyMessageDelayed(HANDLER_WHAT_CLEAR, timeout * 1000);
	}
}
 
源代码13 项目: io2015-codelabs   文件: MusicLibrary.java
public static MediaMetadata getMetadata(Context ctx, String mediaId) {
    MediaMetadata metadataWithoutBitmap = music.get(mediaId);
    Bitmap albumArt = getAlbumBitmap(ctx, mediaId);

    // Since MediaMetadata 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
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    for (String key: new String[]{MediaMetadata.METADATA_KEY_MEDIA_ID,
            MediaMetadata.METADATA_KEY_ALBUM, MediaMetadata.METADATA_KEY_ARTIST,
            MediaMetadata.METADATA_KEY_GENRE, MediaMetadata.METADATA_KEY_TITLE}) {
        builder.putString(key, metadataWithoutBitmap.getString(key));
    }
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION,
            metadataWithoutBitmap.getLong(MediaMetadata.METADATA_KEY_DURATION));
    builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArt);
    return builder.build();
}
 
源代码14 项目: io2015-codelabs   文件: MusicLibrary.java
private static void createMediaMetadata(String mediaId, String title, String artist,
            String album, String genre, long duration, int musicResId, int albumArtResId,
            String albumArtResName) {
    music.put(mediaId,
            new MediaMetadata.Builder()
            .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId)
            .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
            .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
            .putLong(MediaMetadata.METADATA_KEY_DURATION, duration * 1000)
            .putString(MediaMetadata.METADATA_KEY_GENRE, genre)
            .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_TITLE, title)
            .build());
    albumRes.put(mediaId, albumArtResId);
    musicRes.put(mediaId, musicResId);
}
 
源代码15 项目: io2015-codelabs   文件: MusicLibrary.java
public static MediaMetadata getMetadata(Context ctx, String mediaId) {
    MediaMetadata metadataWithoutBitmap = music.get(mediaId);
    Bitmap albumArt = getAlbumBitmap(ctx, mediaId);

    // Since MediaMetadata 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
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    for (String key: new String[]{MediaMetadata.METADATA_KEY_MEDIA_ID,
            MediaMetadata.METADATA_KEY_ALBUM, MediaMetadata.METADATA_KEY_ARTIST,
            MediaMetadata.METADATA_KEY_GENRE, MediaMetadata.METADATA_KEY_TITLE}) {
        builder.putString(key, metadataWithoutBitmap.getString(key));
    }
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION,
            metadataWithoutBitmap.getLong(MediaMetadata.METADATA_KEY_DURATION));
    builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, albumArt);
    return builder.build();
}
 
源代码16 项目: io2015-codelabs   文件: MusicLibrary.java
private static void createMediaMetadata(String mediaId, String title, String artist,
            String album, String genre, long duration, int musicResId, int albumArtResId,
            String albumArtResName) {
    music.put(mediaId,
            new MediaMetadata.Builder()
            .putString(MediaMetadata.METADATA_KEY_MEDIA_ID, mediaId)
            .putString(MediaMetadata.METADATA_KEY_ALBUM, album)
            .putString(MediaMetadata.METADATA_KEY_ARTIST, artist)
            .putLong(MediaMetadata.METADATA_KEY_DURATION, duration * 1000)
            .putString(MediaMetadata.METADATA_KEY_GENRE, genre)
            .putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI, getAlbumArtUri(albumArtResName))
            .putString(MediaMetadata.METADATA_KEY_TITLE, title)
            .build());
    albumRes.put(mediaId, albumArtResId);
    musicRes.put(mediaId, musicResId);
}
 
源代码17 项目: AcDisplay   文件: MediaController2Lollipop.java
@Override
public void run(@NonNull MediaController2 mc) {
    final MediaController2Lollipop mcl = (MediaController2Lollipop) mc;
    final MediaController source = mcl.mMediaController;

    if (source != null && mToken.equals(source.getSessionToken())) {
        long now = SystemClock.elapsedRealtime();

        final MediaMetadata metadata = source.getMetadata();
        final PlaybackState playbackState = source.getPlaybackState();

        long delta = SystemClock.elapsedRealtime() - now;
        Log.i(TAG, "Got the new metadata & playback state in " + delta + " millis. "
                + "The media controller is " + source.getPackageName());

        mHandler.post(new Runnable() {
            @Override
            public void run() {
                mcl.updateMetadata(metadata);
                mcl.updatePlaybackState(playbackState);
            }
        });
    }
}
 
源代码18 项目: android_9.0.0_r45   文件: MediaSessionRecord.java
private PlaybackState getStateWithUpdatedPosition() {
    PlaybackState state;
    long duration = -1;
    synchronized (mLock) {
        state = mPlaybackState;
        if (mMetadata != null && mMetadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) {
            duration = mMetadata.getLong(MediaMetadata.METADATA_KEY_DURATION);
        }
    }
    PlaybackState result = null;
    if (state != null) {
        if (state.getState() == PlaybackState.STATE_PLAYING
                || state.getState() == PlaybackState.STATE_FAST_FORWARDING
                || state.getState() == PlaybackState.STATE_REWINDING) {
            long updateTime = state.getLastPositionUpdateTime();
            long currentTime = SystemClock.elapsedRealtime();
            if (updateTime > 0) {
                long position = (long) (state.getPlaybackSpeed()
                        * (currentTime - updateTime)) + state.getPosition();
                if (duration >= 0 && position > duration) {
                    position = duration;
                } else if (position < 0) {
                    position = 0;
                }
                PlaybackState.Builder builder = new PlaybackState.Builder(state);
                builder.setState(state.getState(), position, state.getPlaybackSpeed(),
                        currentTime);
                result = builder.build();
            }
        }
    }
    return result == null ? state : result;
}
 
源代码19 项目: android_9.0.0_r45   文件: MediaSessionRecord.java
@Override
public void setMetadata(MediaMetadata metadata) {
    synchronized (mLock) {
        MediaMetadata temp = metadata == null ? null : new MediaMetadata.Builder(metadata)
                .build();
        // This is to guarantee that the underlying bundle is unparceled
        // before we set it to prevent concurrent reads from throwing an
        // exception
        if (temp != null) {
            temp.size();
        }
        mMetadata = temp;
    }
    mHandler.post(MessageHandler.MSG_UPDATE_METADATA);
}
 
源代码20 项目: TelePlus-Android   文件: MusicBrowserService.java
private void handlePlayRequest() {
    delayedStopHandler.removeCallbacksAndMessages(null);
    if (!serviceStarted) {
        try {
            startService(new Intent(getApplicationContext(), MusicBrowserService.class));
        } catch (Throwable e) {
            FileLog.e(e);
        }
        serviceStarted = true;
    }

    if (!mediaSession.isActive()) {
        mediaSession.setActive(true);
    }

    MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject();
    if (messageObject == null) {
        return;
    }
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION, messageObject.getDuration() * 1000);
    builder.putString(MediaMetadata.METADATA_KEY_ARTIST, messageObject.getMusicAuthor());
    builder.putString(MediaMetadata.METADATA_KEY_TITLE, messageObject.getMusicTitle());
    AudioInfo audioInfo = MediaController.getInstance().getAudioInfo();
    if (audioInfo != null) {
        Bitmap bitmap = audioInfo.getCover();
        if (bitmap != null) {
            builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, bitmap);
        }
    }
    mediaSession.setMetadata(builder.build());
}
 
源代码21 项目: TelePlus-Android   文件: MusicBrowserService.java
private void handlePlayRequest() {
    delayedStopHandler.removeCallbacksAndMessages(null);
    if (!serviceStarted) {
        try {
            startService(new Intent(getApplicationContext(), MusicBrowserService.class));
        } catch (Throwable e) {
            FileLog.e(e);
        }
        serviceStarted = true;
    }

    if (!mediaSession.isActive()) {
        mediaSession.setActive(true);
    }

    MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject();
    if (messageObject == null) {
        return;
    }
    MediaMetadata.Builder builder = new MediaMetadata.Builder();
    builder.putLong(MediaMetadata.METADATA_KEY_DURATION, messageObject.getDuration() * 1000);
    builder.putString(MediaMetadata.METADATA_KEY_ARTIST, messageObject.getMusicAuthor());
    builder.putString(MediaMetadata.METADATA_KEY_TITLE, messageObject.getMusicTitle());
    AudioInfo audioInfo = MediaController.getInstance().getAudioInfo();
    if (audioInfo != null) {
        Bitmap bitmap = audioInfo.getCover();
        if (bitmap != null) {
            builder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, bitmap);
        }
    }
    mediaSession.setMetadata(builder.build());
}
 
private void updateMetadata(final Clip clip) {
    final MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder();

    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE, clip.getTitle());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE,
            clip.getDescription());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI,
            clip.getCardImageUrl());

    // And at minimum the title and artist for legacy support
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE, clip.getTitle());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_ARTIST, clip.getDescription());

    Glide.with(this)
            .asBitmap()
            .load(Uri.parse(clip.getCardImageUrl()))
            .into(new SimpleTarget<Bitmap>(500, 500) {
                @Override
                public void onResourceReady(Bitmap bitmap, Transition transition) {
                    metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ART, bitmap);
                    mSession.setMetadata(metadataBuilder.build());
                }

                @Override
                public void onLoadFailed(Drawable errorDrawable) {
                    Log.e(TAG, "onLoadFailed: " + errorDrawable);
                    mSession.setMetadata(metadataBuilder.build());
                }
            });
}
 
@Override
public void onMetadataChanged(MediaMetadata metadata) {
    Log.d(TAG, "received update of media metadata");
    updateMovieView(
            metadata.getString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE),
            metadata.getString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE),
            metadata.getString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI),
            metadata.getLong(MediaMetadata.METADATA_KEY_DURATION)
    );
}
 
源代码24 项目: scroball   文件: PlaybackTracker.java
public void handleMetadataChange(String player, MediaMetadata metadata) {
  if (metadata == null) {
    return;
  }

  Track track =
      metadataTransformers.transformForPackageName(player, Track.fromMediaMetadata(metadata));

  if (!track.isValid()) {
    return;
  }

  PlayerState playerState = getOrCreatePlayerState(player);
  playerState.setTrack(track);
}
 
源代码25 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_runsTitleExtractorIfArtistMissing() {
  MediaMetadata input =
      new MediaMetadata.Builder()
          .putString(MediaMetadata.METADATA_KEY_TITLE, "Test - Input")
          .build();

  Track output = Track.fromMediaMetadata(input);

  assertThat(output.artist()).isEqualTo("Test");
  assertThat(output.track()).isEqualTo("Input");
}
 
源代码26 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_usesDisplayTitleIfTitleMissing() {
  MediaMetadata input =
      new MediaMetadata.Builder()
          .putString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE, "Display Title")
          .build();

  Track output = Track.fromMediaMetadata(input);

  assertThat(output.track()).isEqualTo("Display Title");
}
 
源代码27 项目: BuildingForAndroidTV   文件: PlaybackActivity.java
private void updateMetadata(final Movie movie) {
    final MediaMetadata.Builder metadataBuilder = new MediaMetadata.Builder();

    String title = movie.getTitle().replace("_", " -");

    metadataBuilder.putString(MediaMetadata.METADATA_KEY_MEDIA_ID, movie.getId());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE, title);
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE,
            movie.getStudio());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_DESCRIPTION,
            movie.getDescription());
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI,
            movie.getCardImageUrl());
    metadataBuilder.putLong(MediaMetadata.METADATA_KEY_DURATION, mDuration);

    // And at minimum the title and artist for legacy support
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE, title);
    metadataBuilder.putString(MediaMetadata.METADATA_KEY_ARTIST, movie.getStudio());

    Glide.with(this)
        .load(Uri.parse(movie.getCardImageUrl()))
        .asBitmap()
        .into(new SimpleTarget<Bitmap>(500, 500) {
            @Override
            public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
                metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ART, bitmap);
                mSession.setMetadata(metadataBuilder.build());
            }
        });
}
 
源代码28 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_nonPositiveDurationIsAbsent() {
  MediaMetadata input1 =
      new MediaMetadata.Builder().putLong(MediaMetadata.METADATA_KEY_DURATION, 0).build();
  MediaMetadata input2 =
      new MediaMetadata.Builder().putLong(MediaMetadata.METADATA_KEY_DURATION, -1).build();

  Track output1 = Track.fromMediaMetadata(input1);
  Track output2 = Track.fromMediaMetadata(input2);

  assertThat(output1.duration()).isAbsent();
  assertThat(output2.duration()).isAbsent();
}
 
源代码29 项目: scroball   文件: TrackTest.java
@Test
public void fromMediaMetadata_usesAlbumArtistIfArtistMissing() {
  MediaMetadata input =
      new MediaMetadata.Builder()
          .putString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST, "Artist")
          .build();

  Track output = Track.fromMediaMetadata(input);

  assertThat(output.artist()).isEqualTo("Artist");
}
 
源代码30 项目: RoMote   文件: NotificationService.java
private void setUpMediaSession() {
    mediaSession = new MediaSession(this, TAG);
    mediaSession.setActive(true);
    mediaSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS |
            MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
    mediaSession.setPlaybackState(
            new PlaybackState.Builder()
                    .setState(PlaybackState.STATE_PLAYING, 0L, 0F)
                    .setActions(PlaybackState.ACTION_PAUSE |
                            PlaybackState.ACTION_PLAY |
                            PlaybackState.ACTION_REWIND |
                            PlaybackState.ACTION_FAST_FORWARD)
                    .build());
    mediaSession.setMetadata(new MediaMetadata.Builder().build());
}
 
 类所在包
 同包方法