com.google.android.gms.cast.framework.media.RemoteMediaClient

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
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
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
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
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
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
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
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
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
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
/**
     * 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
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
private void onPlayPauseClicked(View view) {
    RemoteMediaClient remoteMediaClient = getRemoteMediaClient();
    if (remoteMediaClient != null) {
        remoteMediaClient.togglePlayback();
    }
}