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; }
@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 void updateMetadata(MediaMetadataCompat metadata) { mCurrentDuration = metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION); mProgressBarUpdater.setCurrentDuration(mCurrentDuration); mCurrentTimeTextView.setText(ViewUtils.durationToString(0)); updateTextViewCompleteTime(); updateText(); updateImageViews(); }
/** * 获取媒体时长,单位毫秒 */ public long getDuration() { long duration = -1; MediaSessionConnection connection = MediaSessionConnection.getInstance(sContext); if (connection.isConnected()) { duration = connection.getNowPlaying().getLong(MediaMetadataCompat.METADATA_KEY_DURATION); //如果没设置duration if (duration == 0) { if (mPlayback != null) { duration = mPlayback.getDuration(); } } } return duration; }
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(); }
@Override public void onMetadataChanged(MediaMetadataCompat metadata) { Log.d(TAG, "onMetadataChanged changed" + metadata); if (mTomahawkListAdapter != null && metadata != null) { if (getPlaybackManager().getCurrentEntry() != null) { mProgressBarUpdater.setCurrentDuration( metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION)); mTomahawkListAdapter .setHighlightedEntry(getPlaybackManager().getCurrentEntry()); mTomahawkListAdapter .setHighlightedQuery(getPlaybackManager().getCurrentQuery()); mTomahawkListAdapter.notifyDataSetChanged(); } } TomahawkFragment.this.onMetadataChanged(metadata); }
case METADATA_TYPE_LONG: MediaMetadataCompatApi21.Builder.putLong(builderObj, key, getLong(key)); break; case METADATA_TYPE_RATING: