Here are the examples of the java api class com.google.android.gms.cast.framework.media.RemoteMediaClient taken from open source projects.
1. QueueDataProvider#moveItem()
Project: CastVideos-android
File: QueueDataProvider.java
File: QueueDataProvider.java
public void moveItem(int fromPosition, int toPosition) { if (fromPosition == toPosition) { return; } RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient == null) { return; } int itemId = mQueue.get(fromPosition).getItemId(); remoteMediaClient.queueMoveItemToNewIndex(itemId, toPosition, null); final MediaQueueItem item = mQueue.remove(fromPosition); mQueue.add(toPosition, item); }
2. QueueDataProvider#onUpcomingStopClicked()
Project: CastVideos-android
File: QueueDataProvider.java
File: QueueDataProvider.java
public void onUpcomingStopClicked(View view, MediaQueueItem upcomingItem) { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient == null) { return; } // need to truncate the queue on the remote device so that we can complete the playback of // the current item but not go any further. Alternatively, one could just stop the playback // here, if that was acceptable. int position = getPositionByItemId(upcomingItem.getItemId()); int[] itemIds = new int[getCount() - position]; for (int i = 0; i < itemIds.length; i++) { itemIds[i] = mQueue.get(i + position).getItemId(); } remoteMediaClient.queueRemoveItems(itemIds, null); }
3. LocalPlayerActivity#loadRemoteMedia()
Project: CastVideos-android
File: LocalPlayerActivity.java
File: LocalPlayerActivity.java
private void loadRemoteMedia(int position, boolean autoPlay) { if (mCastSession == null) { return; } RemoteMediaClient remoteMediaClient = mCastSession.getRemoteMediaClient(); if (remoteMediaClient == null) { return; } remoteMediaClient.load(mSelectedMedia, autoPlay, position); Intent intent = new Intent(this, ExpandedControlsActivity.class); startActivity(intent); }
4. LocalPlayerActivity#loadRemoteMedia()
Project: cast-videos-android
File: LocalPlayerActivity.java
File: LocalPlayerActivity.java
private void loadRemoteMedia(int position, boolean autoPlay) { if (mCastSession == null) { return; } RemoteMediaClient remoteMediaClient = mCastSession.getRemoteMediaClient(); if (remoteMediaClient == null) { return; } remoteMediaClient.load(buildMediaInfo(), autoPlay, position); Intent intent = new Intent(this, ExpandedControlsActivity.class); startActivity(intent); }
5. QueueListAdapter#updatePlayPauseButtonImageResource()
Project: CastVideos-android
File: QueueListAdapter.java
File: QueueListAdapter.java
private void updatePlayPauseButtonImageResource(ImageButton button) { CastSession castSession = CastContext.getSharedInstance(mAppContext).getSessionManager().getCurrentCastSession(); RemoteMediaClient remoteMediaClient = (castSession == null) ? null : castSession.getRemoteMediaClient(); if (remoteMediaClient == null) { button.setVisibility(View.GONE); return; } int status = remoteMediaClient.getPlayerState(); switch(status) { case MediaStatus.PLAYER_STATE_PLAYING: button.setImageResource(PAUSE_RESOURCE); break; case MediaStatus.PLAYER_STATE_PAUSED: button.setImageResource(PLAY_RESOURCE); break; default: button.setVisibility(View.GONE); } }
6. QueueDataProvider#syncWithRemoteQueue()
Project: CastVideos-android
File: QueueDataProvider.java
File: QueueDataProvider.java
private void syncWithRemoteQueue() { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient != null) { remoteMediaClient.addListener(mRemoteMediaClientListener); MediaStatus mediaStatus = remoteMediaClient.getMediaStatus(); if (mediaStatus != null) { List<MediaQueueItem> items = mediaStatus.getQueueItems(); if (items != null && !items.isEmpty()) { mQueue.clear(); mQueue.addAll(items); mRepeatMode = mediaStatus.getQueueRepeatMode(); mCurrentIem = mediaStatus.getQueueItemById(mediaStatus.getCurrentItemId()); mDetachedQueue = false; mUpcomingItem = mediaStatus.getQueueItemById(mediaStatus.getPreloadedItemId()); } } } }
7. ExpandedControlsFragment#updateToolbarTitle()
Project: CastVideos-android
File: ExpandedControlsFragment.java
File: ExpandedControlsFragment.java
private void updateToolbarTitle() { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient != null && remoteMediaClient.hasMediaSession()) { MediaInfo mediaInfo = remoteMediaClient.getMediaInfo(); if (mediaInfo != null) { MediaMetadata mediaMetadata = mediaInfo.getMetadata(); if (mediaMetadata != null) { ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(mediaMetadata.getString(MediaMetadata.KEY_TITLE)); } } } }
8. ExpandedControlsFragment#updateToolbarTitle()
Project: cast-videos-android
File: ExpandedControlsFragment.java
File: ExpandedControlsFragment.java
private void updateToolbarTitle() { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient != null && remoteMediaClient.hasMediaSession()) { MediaInfo mediaInfo = remoteMediaClient.getMediaInfo(); if (mediaInfo != null) { MediaMetadata mediaMetadata = mediaInfo.getMetadata(); if (mediaMetadata != null) { ((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(mediaMetadata.getString(MediaMetadata.KEY_TITLE)); } } } }
9. QueueDataProvider#onUpcomingPlayClicked()
Project: CastVideos-android
File: QueueDataProvider.java
File: QueueDataProvider.java
public void onUpcomingPlayClicked(View view, MediaQueueItem upcomingItem) { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient == null) { return; } remoteMediaClient.queueJumpToItem(upcomingItem.getItemId(), null); }
10. Utils#showQueuePopup()
Project: CastVideos-android
File: Utils.java
File: Utils.java
/** * Show a popup to select whether the selected item should play immediately, be added to the * end of queue or be added to the queue right after the current item. */ public static void showQueuePopup(final Context context, View view, final MediaInfo mediaInfo) { CastSession castSession = CastContext.getSharedInstance(context).getSessionManager().getCurrentCastSession(); if (castSession == null || !castSession.isConnected()) { Log.w(TAG, "showQueuePopup(): not connected to a cast device"); return; } final RemoteMediaClient remoteMediaClient = castSession.getRemoteMediaClient(); if (remoteMediaClient == null) { Log.w(TAG, "showQueuePopup(): null RemoteMediaClient"); return; } final QueueDataProvider provider = QueueDataProvider.getInstance(context); PopupMenu popup = new PopupMenu(context, view); popup.getMenuInflater().inflate(provider.isQueueDetached() || provider.getCount() == 0 ? R.menu.detached_popup_add_to_queue : R.menu.popup_add_to_queue, popup.getMenu()); PopupMenu.OnMenuItemClickListener clickListener = new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { QueueDataProvider provider = QueueDataProvider.getInstance(context); MediaQueueItem queueItem = new MediaQueueItem.Builder(mediaInfo).setAutoplay(true).setPreloadTime(PRELOAD_TIME_S).build(); MediaQueueItem[] newItemArray = new MediaQueueItem[] { queueItem }; String toastMessage = null; if (provider.isQueueDetached() && provider.getCount() > 0) { if ((menuItem.getItemId() == R.id.action_play_now) || (menuItem.getItemId() == R.id.action_add_to_queue)) { MediaQueueItem[] items = Utils.rebuildQueueAndAppend(provider.getItems(), queueItem); remoteMediaClient.queueLoad(items, provider.getCount(), MediaStatus.REPEAT_MODE_REPEAT_OFF, null); } else { return false; } } else { if (provider.getCount() == 0) { remoteMediaClient.queueLoad(newItemArray, 0, MediaStatus.REPEAT_MODE_REPEAT_OFF, null); } else { int currentId = provider.getCurrentItemId(); if (menuItem.getItemId() == R.id.action_play_now) { remoteMediaClient.queueInsertAndPlayItem(queueItem, currentId, null); } else if (menuItem.getItemId() == R.id.action_play_next) { int currentPosition = provider.getPositionByItemId(currentId); if (currentPosition == provider.getCount() - 1) { //we are adding to the end of queue remoteMediaClient.queueAppendItem(queueItem, null); } else { int nextItemId = provider.getItem(currentPosition + 1).getItemId(); remoteMediaClient.queueInsertItems(newItemArray, nextItemId, null); } toastMessage = context.getString(R.string.queue_item_added_to_play_next); } else if (menuItem.getItemId() == R.id.action_add_to_queue) { remoteMediaClient.queueAppendItem(queueItem, null); toastMessage = context.getString(R.string.queue_item_added_to_queue); } else { return false; } } } if (menuItem.getItemId() == R.id.action_play_now) { Intent intent = new Intent(context, ExpandedControlsActivity.class); context.startActivity(intent); } if (!TextUtils.isEmpty(toastMessage)) { Toast.makeText(context, toastMessage, Toast.LENGTH_SHORT).show(); } return true; } }; popup.setOnMenuItemClickListener(clickListener); popup.show(); }
11. QueueListViewFragment#onContainerClicked()
Project: CastVideos-android
File: QueueListViewFragment.java
File: QueueListViewFragment.java
private void onContainerClicked(View view) { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient == null) { return; } MediaQueueItem item = (MediaQueueItem) view.getTag(R.string.queue_tag_item); if (mProvider.isQueueDetached()) { Log.d(TAG, "Is detached: itemId = " + item.getItemId()); int currentPosition = mProvider.getPositionByItemId(item.getItemId()); MediaQueueItem[] items = Utils.rebuildQueue(mProvider.getItems()); remoteMediaClient.queueLoad(items, currentPosition, MediaStatus.REPEAT_MODE_REPEAT_OFF, null); } else { int currentItemId = mProvider.getCurrentItemId(); if (currentItemId == item.getItemId()) { // We selected the one that is currently playing so we take the user to the // full screen controller CastSession castSession = CastContext.getSharedInstance(getContext().getApplicationContext()).getSessionManager().getCurrentCastSession(); if (castSession != null) { Intent intent = new Intent(getActivity(), ExpandedControlsActivity.class); startActivity(intent); } } else { // a different item in the queue was selected so we jump there remoteMediaClient.queueJumpToItem(item.getItemId(), null); } } }
12. QueueListViewFragment#onPlayPauseClicked()
Project: CastVideos-android
File: QueueListViewFragment.java
File: QueueListViewFragment.java
private void onPlayPauseClicked(View view) { RemoteMediaClient remoteMediaClient = getRemoteMediaClient(); if (remoteMediaClient != null) { remoteMediaClient.togglePlayback(); } }