List of usage examples for android.support.v4.media MediaMetadataCompat METADATA_KEY_DURATION
String METADATA_KEY_DURATION
To view the source code for android.support.v4.media MediaMetadataCompat METADATA_KEY_DURATION.
Click Source Link
From source file:com.reallynourl.nourl.fmpfoldermusicplayer.ui.notifications.MediaNotification.java
private static void updateMediaSession(MediaSessionCompat mediaSession) { ExtendedFile currentFile = MediaManager.getInstance().getCurrentFile(); if (currentFile != null) { long validActions = PlaybackStateCompat.ACTION_STOP; if (MediaManager.getInstance().canPlay()) { validActions |= PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE; }//from w w w .java 2s .c om if (MediaManager.getInstance().hasNext()) { validActions |= PlaybackStateCompat.ACTION_SKIP_TO_NEXT; } if (MediaManager.getInstance().hasPrevious()) { validActions |= PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS; } int playState = MediaManager.getInstance().isPlaying() ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED; mediaSession.setMetadata(new MediaMetadataCompat.Builder() .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, currentFile.getParentFile().getName()) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, currentFile.getNameWithoutExtension()) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, MediaManager.getInstance().getDuration()) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, MediaManager.getInstance().getPlaylist().getCurrentIndex() + 1) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, MediaManager.getInstance().getPlaylist().size()) //.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap) .build()); mediaSession.setPlaybackState(new PlaybackStateCompat.Builder() .setState(playState, MediaManager.getInstance().getPosition(), 1.0f).setActions(validActions) .build()); } else { mediaSession.setActive(false); } }
From source file:com.livemasjid.livemasjidandroid.model.RemoteJSONSource.java
private MediaMetadataCompat buildFromJSON(JSONObject json, String basePath, int totalTracks, int trackNo, ArrayList<String> live) throws JSONException { try {/*w w w . j a v a 2 s . com*/ String title = json.getString(JSON_STREAMNAME); String album = json.getString(JSON_STREAMNAME); String artist = json.getString(JSON_STREAMDESC); String genre = json.getString(JSON_GENRE).replaceAll("/", "-"); String listenURL = json.getString(JSON_STREAMURL); String id = json.getString(JSON_MOUNTNAME); String iconUrl = "http://livemasjid.com/images/MasjidLogo.png";//json.getString(JSON_IMAGE); if (genre.contains("Aalim")) { iconUrl = "http://livemasjid.com/images/AalimLogo.png"; } else if (genre.contains("Institution")) { iconUrl = "http://livemasjid.com/images/InstitutionLogo.png"; } int trackNumber = trackNo;//json.getInt(JSON_TRACK_NUMBER); int totalTrackCount = totalTracks;//json.getInt(JSON_TOTAL_TRACK_COUNT); int duration = 10000000;//json.getInt(JSON_DURATION) * 1000; // ms LogHelper.d(TAG, "Found music track: ", json); LogHelper.d(TAG, id); // Media is stored relative to JSON file if (!listenURL.startsWith("http")) { listenURL = "http://" + listenURL; } if (!live.contains(id)) { genre = "Offline"; title = "Last recording: " + title; listenURL = listenURL.replace(":8000", "/download/mp3") + "/latest.mp3"; //listenURL = listenURL.replace(":8000/","/download/mp3/dir2cast.php?dir="); } //if (!iconUrl.startsWith("http")) { // iconUrl = basePath + iconUrl; //} // Since we don't have a unique ID in the server, we fake one using the hashcode of // the music listenURL. In a real world app, this could come from the server. //String id = String.valueOf(listenURL.hashCode()); // Adding the music listenURL 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, listenURL) .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) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); } catch (JSONException e) { LogHelper.e(TAG, e, "Could not retrieve required track info"); return null; } }
From source file:nuclei.media.MediaInterface.java
void onConnected() { try {// w w w. j ava 2 s .c o m Context context = mFragmentActivity == null ? mLActivity : mFragmentActivity; if (context == null) return; mMediaControls = new MediaControllerCompat(context, mMediaBrowser.getSessionToken()); mMediaCallback = new MediaControllerCompat.Callback() { @Override public void onPlaybackStateChanged(PlaybackStateCompat state) { MediaInterface.this.onPlaybackStateChanged(state); } @Override public void onSessionEvent(String event, Bundle extras) { MediaInterface.this.onSessionEvent(event, extras); } @Override public void onMetadataChanged(MediaMetadataCompat metadata) { MediaInterface.this.onMetadataChanged(metadata); } }; mMediaControls.registerCallback(mMediaCallback); if (mFragmentActivity != null) { MediaControllerCompat.setMediaController(mFragmentActivity, mMediaControls); //mFragmentActivity.setSupportMediaController(mMediaControls); } else if (mLActivity != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) setMediaControllerL(); if (mPlayerControls != null) mPlayerControls.setMediaControls(mCallbacks, mMediaControls); if (mMediaControls.getPlaybackState() != null) onPlaybackStateChanged(mMediaControls.getPlaybackState()); final Intent intent = mFragmentActivity == null ? mLActivity.getIntent() : mFragmentActivity.getIntent(); if (MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH.equals(intent.getAction())) { final Bundle params = intent.getExtras(); final String query = params.getString(SearchManager.QUERY); LOG.i("Starting from voice search query=" + query); mMediaControls.getTransportControls().playFromSearch(query, params); } if (mCallbacks != null) { mCallbacks.onConnected(this); MediaMetadataCompat metadataCompat = mMediaControls.getMetadata(); if (metadataCompat != null) { final long duration = metadataCompat.getLong(MediaMetadataCompat.METADATA_KEY_DURATION); if (duration > 0) mCallbacks.setTimeTotal(this, duration); } } Bundle extras = mMediaControls.getExtras(); if (extras != null && extras.containsKey(MediaService.EXTRA_CONNECTED_CAST)) { mCallbacks.onCasting(this, extras.getString(MediaService.EXTRA_CONNECTED_CAST)); } if (mPlayerControls != null && mPlayerControls.isPlaying()) mHandler.start(); if (mSurface != null) setSurface(mSurface); LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ACTION_CONNECTED)); } catch (RemoteException err) { LOG.e("Error in onConnected", err); } }
From source file:org.gateshipone.odyssey.playbackservice.managers.PlaybackServiceStatusHelper.java
/** * Updates the Metadata from Androids MediaSession. This sets track/album and stuff * for a lockscreen image for example./* w w w. j a v a2s . c o m*/ * * @param track Current track. * @param playbackState State of the PlaybackService. */ private void updateMetadata(TrackModel track, PlaybackService.PLAYSTATE playbackState) { if (track != null) { if (playbackState == PlaybackService.PLAYSTATE.PLAYING) { mMediaSession.setPlaybackState(new PlaybackStateCompat.Builder() .setState(PlaybackStateCompat.STATE_PLAYING, 0, 1.0f) .setActions(PlaybackStateCompat.ACTION_SKIP_TO_NEXT + PlaybackStateCompat.ACTION_PAUSE + PlaybackStateCompat.ACTION_PLAY + PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS + PlaybackStateCompat.ACTION_STOP + PlaybackStateCompat.ACTION_SEEK_TO) .build()); } else { mMediaSession.setPlaybackState(new PlaybackStateCompat.Builder() .setState(PlaybackStateCompat.STATE_PAUSED, 0, 1.0f) .setActions(PlaybackStateCompat.ACTION_SKIP_TO_NEXT + PlaybackStateCompat.ACTION_PAUSE + PlaybackStateCompat.ACTION_PLAY + PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS + PlaybackStateCompat.ACTION_STOP + PlaybackStateCompat.ACTION_SEEK_TO) .build()); } // Try to get old metadata to save image retrieval. MediaMetadataCompat oldData = mMediaSession.getController().getMetadata(); MediaMetadataCompat.Builder metaDataBuilder; if (oldData == null) { metaDataBuilder = new MediaMetadataCompat.Builder(); } else { metaDataBuilder = new MediaMetadataCompat.Builder(mMediaSession.getController().getMetadata()); } metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, track.getTrackName()); metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, track.getTrackAlbumName()); metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, track.getTrackArtistName()); metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, track.getTrackArtistName()); metaDataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, track.getTrackName()); metaDataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, track.getTrackNumber()); metaDataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, track.getTrackDuration()); mMediaSession.setMetadata(metaDataBuilder.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. *//* www . j av a 2 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:github.popeen.dsub.util.compat.RemoteControlClientLP.java
public void setMetadata(MusicDirectory.Entry currentSong, Bitmap bitmap) { MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder(); builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, (currentSong == null) ? null : currentSong.getArtist()) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, (currentSong == null) ? null : currentSong.getAlbum()) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, (currentSong == null) ? null : currentSong.getArtist()) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, (currentSong) == null ? null : currentSong.getTitle()) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, (currentSong) == null ? null : currentSong.getGenre()) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, (currentSong == null) ? 0 : ((currentSong.getTrack() == null) ? 0 : currentSong.getTrack())) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, (currentSong == null) ? 0 : ((currentSong.getDuration() == null) ? 0 : (currentSong.getDuration() * 1000))); if (bitmap != null) { builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bitmap); }/* w w w. j a v a 2s. c o m*/ mediaSession.setMetadata(builder.build()); }
From source file:com.appdevper.mediaplayer.model.MusicProvider.java
private MediaMetadataCompat buildFromContent(ContentItem contentItem) { String title = contentItem.toString(); String album = contentItem.getSubtitle(); String artist = contentItem.getItem().getCreator(); String genre = contentItem.getMimeType(); String source = contentItem.getResourceUri(); String iconUrl = contentItem.getAlbumArtworkUri(); int trackNumber = 0; int totalTrackCount = 0; long duration = Utils.strToMilli(contentItem.getDuration()); // ms String id = String.valueOf(source.hashCode()); Log.i(TAG, "MediaMetadata id " + id); 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) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, trackNumber) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, totalTrackCount).build(); }
From source file:com.mylovemhz.simplay.MediaControlFragment.java
private void readMetadata(MediaMetadataCompat metadata) { if (metadata != null) { seekBar.setMax((int) metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION)); artistText.setText(metadata.getText(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST)); titleText.setText(metadata.getText(MediaMetadataCompat.METADATA_KEY_TITLE)); String artUrl = metadata.getText(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI).toString(); try {//from www .java 2s .c o m Picasso.with(getContext().getApplicationContext()).load(artUrl).into(albumImage); } catch (IllegalArgumentException e) { //no artwork albumImage.setImageResource(R.drawable.ic_album); } } }
From source file:android.support.v17.leanback.media.MediaControllerAdapter.java
@Override public long getDuration() { if (mController.getMetadata() == null) { return 0; }// w w w . j av a 2s . com return (int) mController.getMetadata().getLong(MediaMetadataCompat.METADATA_KEY_DURATION); }
From source file:github.popeen.dsub.util.compat.RemoteControlClientLP.java
@Override public void updatePlaylist(List<DownloadFile> playlist) { List<MediaSessionCompat.QueueItem> queue = new ArrayList<>(); for (DownloadFile file : playlist) { Entry entry = file.getSong();//from w w w. ja v a 2s . c o m Bundle extras = new Bundle(); extras.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, ((entry.getDuration() == null) ? 0 : (entry.getDuration() * 1000))); MediaDescriptionCompat description = new MediaDescriptionCompat.Builder().setMediaId(entry.getId()) .setTitle(entry.getTitle()).setSubtitle(entry.getArtist()).setDescription(entry.getAlbum()) .setExtras(extras).build(); MediaSessionCompat.QueueItem item = new MediaSessionCompat.QueueItem(description, entry.getId().hashCode()); queue.add(item); } mediaSession.setQueue(queue); currentQueue = playlist; }