Here are the examples of the java api class com.google.android.gms.cast.MediaInfo taken from open source projects.
1. MainActivity#startVideo()
Project: AndroidDemoProjects
File: MainActivity.java
File: MainActivity.java
private void startVideo() { MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE); mediaMetadata.putString(MediaMetadata.KEY_TITLE, getString(R.string.video_title)); MediaInfo mediaInfo = new MediaInfo.Builder(getString(R.string.video_url)).setContentType(getString(R.string.content_type_mp4)).setStreamType(MediaInfo.STREAM_TYPE_BUFFERED).setMetadata(mediaMetadata).build(); try { mRemoteMediaPlayer.load(mApiClient, mediaInfo, true).setResultCallback(new ResultCallback<RemoteMediaPlayer.MediaChannelResult>() { @Override public void onResult(RemoteMediaPlayer.MediaChannelResult mediaChannelResult) { if (mediaChannelResult.getStatus().isSuccess()) { mVideoIsLoaded = true; mButton.setText(getString(R.string.pause_video)); } } }); } catch (Exception e) { } }
2. CastPlayback#loadMedia()
Project: android-UniversalMusicPlayer
File: CastPlayback.java
File: CastPlayback.java
private void loadMedia(String mediaId, boolean autoPlay) throws TransientNetworkDisconnectionException, NoConnectionException, JSONException { String musicId = MediaIDHelper.extractMusicIDFromMediaID(mediaId); MediaMetadataCompat track = mMusicProvider.getMusic(musicId); if (track == null) { throw new IllegalArgumentException("Invalid mediaId " + mediaId); } if (!TextUtils.equals(mediaId, mCurrentMediaId)) { mCurrentMediaId = mediaId; mCurrentPosition = 0; } JSONObject customData = new JSONObject(); customData.put(ITEM_ID, mediaId); MediaInfo media = toCastMediaMetadata(track, customData); VideoCastManager.getInstance().loadMedia(media, autoPlay, mCurrentPosition, customData); }
3. QueueListAdapter#onBindViewHolder()
Project: CastVideos-android
File: QueueListAdapter.java
File: QueueListAdapter.java
@Override public void onBindViewHolder(final QueueItemViewHolder holder, int position) { Log.d(TAG, "[upcoming] onBindViewHolder() for position: " + position); final MediaQueueItem item = mProvider.getItem(position); holder.mContainer.setTag(R.string.queue_tag_item, item); holder.mPlayPause.setTag(R.string.queue_tag_item, item); holder.mPlayUpcoming.setTag(R.string.queue_tag_item, item); holder.mStopUpcoming.setTag(R.string.queue_tag_item, item); // Set listeners holder.mContainer.setOnClickListener(mItemViewOnClickListener); holder.mPlayPause.setOnClickListener(mItemViewOnClickListener); holder.mPlayUpcoming.setOnClickListener(mItemViewOnClickListener); holder.mStopUpcoming.setOnClickListener(mItemViewOnClickListener); MediaInfo info = item.getMedia(); MediaMetadata metaData = info.getMetadata(); holder.mTitleView.setText(metaData.getString(MediaMetadata.KEY_TITLE)); holder.mDescriptionView.setText(metaData.getString(MediaMetadata.KEY_SUBTITLE)); AQuery aq = new AQuery(holder.itemView); if (!metaData.getImages().isEmpty()) { aq.id(holder.mImageView).width(IMAGE_THUMBNAIL_WIDTH).image(metaData.getImages().get(0).getUrl().toString(), true, true, 0, R.drawable.default_video, null, 0, ASPECT_RATIO); } holder.mDragHandle.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) { mDragStartListener.onStartDrag(holder); } return false; } }); if (item == mProvider.getCurrentItem()) { holder.updateControlsStatus(QueueItemViewHolder.CURRENT); updatePlayPauseButtonImageResource(holder.mPlayPause); } else if (item == mProvider.getUpcomingItem()) { holder.updateControlsStatus(QueueItemViewHolder.UPCOMING); } else { holder.updateControlsStatus(QueueItemViewHolder.NONE); holder.mPlayPause.setVisibility(View.GONE); } }
4. VideoListAdapter#onBindViewHolder()
Project: CastVideos-android
File: VideoListAdapter.java
File: VideoListAdapter.java
@Override public void onBindViewHolder(ViewHolder viewHolder, final int position) { final MediaInfo item = videos.get(position); MediaMetadata mm = item.getMetadata(); viewHolder.setTitle(mm.getString(MediaMetadata.KEY_TITLE)); viewHolder.setDescription(mm.getString(MediaMetadata.KEY_SUBTITLE)); viewHolder.setImage(mm.getImages().get(0).getUrl().toString()); viewHolder.mMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mClickListener.itemClicked(view, item, position); } }); viewHolder.mImgView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mClickListener.itemClicked(view, item, position); } }); viewHolder.mTextContainer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mClickListener.itemClicked(view, item, position); } }); CastSession castSession = CastContext.getSharedInstance(mAppContext).getSessionManager().getCurrentCastSession(); viewHolder.mMenu.setVisibility((castSession != null && castSession.isConnected()) ? View.VISIBLE : View.GONE); }
5. CastManager#isRemoteStreamLive()
Project: AntennaPod
File: CastManager.java
File: CastManager.java
/** * Determines if the media that is loaded remotely is a live stream or not. * * @throws TransientNetworkDisconnectionException * @throws NoConnectionException */ public final boolean isRemoteStreamLive() throws TransientNetworkDisconnectionException, NoConnectionException { checkConnectivity(); MediaInfo info = getRemoteMediaInformation(); return (info != null) && (info.getStreamType() == MediaInfo.STREAM_TYPE_LIVE); }
6. QueueListAdapter#onBindViewHolder()
Project: android-and-chromecast-app
File: QueueListAdapter.java
File: QueueListAdapter.java
@Override public void onBindViewHolder(final QueueItemViewHolder holder, int position) { Log.d(TAG, "[upcoming] onBindViewHolder() for position: " + position); final MediaQueueItem item = mProvider.getItem(position); holder.mContainer.setTag(R.string.queue_tag_item, item); holder.mPlayPause.setTag(R.string.queue_tag_item, item); holder.mPlayUpcoming.setTag(R.string.queue_tag_item, item); holder.mStopUpcoming.setTag(R.string.queue_tag_item, item); // set listeners holder.mContainer.setOnClickListener(mItemViewOnClickListener); holder.mPlayPause.setOnClickListener(mItemViewOnClickListener); holder.mPlayUpcoming.setOnClickListener(mItemViewOnClickListener); holder.mStopUpcoming.setOnClickListener(mItemViewOnClickListener); MediaInfo info = item.getMedia(); MediaMetadata metaData = info.getMetadata(); holder.mTitleView.setText(metaData.getString(MediaMetadata.KEY_TITLE)); holder.mDescriptionView.setText(metaData.getString(MediaMetadata.KEY_SUBTITLE)); AQuery aq = new AQuery(holder.itemView); if (!metaData.getImages().isEmpty()) { aq.id(holder.mImageView).width(64).image(metaData.getImages().get(0).getUrl().toString(), true, true, 0, R.drawable.default_video, null, 0, mAspectRatio); } holder.mDragHandle.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) { mDragStartListener.onStartDrag(holder); } return false; } }); if (item == mProvider.getCurrentItem()) { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.CURRENT); updateImageResource(holder.mPlayPause); } else if (item == mProvider.getUpcomingItem()) { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.UPCOMING); } else { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.NONE); holder.mPlayPause.setVisibility(View.GONE); } }
7. VideoListAdapter#onBindViewHolder()
Project: android-and-chromecast-app
File: VideoListAdapter.java
File: VideoListAdapter.java
@Override public void onBindViewHolder(ViewHolder viewHolder, final int position) { final MediaInfo item = videos.get(position); MediaMetadata mm = item.getMetadata(); viewHolder.setTitle(mm.getString(MediaMetadata.KEY_TITLE)); viewHolder.setDescription(mm.getString(MediaMetadata.KEY_SUBTITLE)); viewHolder.setImage(mm.getImages().get(0).getUrl().toString()); viewHolder.mMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mClickListener.itemClicked(v, item, position); } }); viewHolder.mImgView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mClickListener.itemClicked(v, item, position); } }); viewHolder.mTextContainer.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mClickListener.itemClicked(v, item, position); } }); viewHolder.mMenu.setVisibility(mCastManager.isConnected() ? View.VISIBLE : View.GONE); }