use of android.support.v7.media.MediaRouter in project MediaRouter-Cast-Button-android by googlecast.
the class MediaRouterCustomDialogActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.media_router_action_bar_button);
mCustomMediaRouteDialogFactory = new CustomMediaRouteDialogFactory();
mMediaRouter = MediaRouter.getInstance(getApplicationContext());
// Create a MediaRouteSelector for the type of routes your app supports
mMediaRouteSelector = new MediaRouteSelector.Builder().addControlCategory(CastMediaControlIntent.categoryForCast(getResources().getString(R.string.app_id))).build();
// Create a MediaRouter callback for discovery events
mMediaRouterCallback = new MyMediaRouterCallback();
}
use of android.support.v7.media.MediaRouter in project MediaRouter-Cast-Button-android by googlecast.
the class MediaRouterDiscoveryActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.media_router_discovery);
// Create a list control for displaying the names of the
// devices discovered by the MediaRouter
final ListView listview = (ListView) findViewById(R.id.listview);
mRouteNames = new ArrayList<String>();
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mRouteNames);
listview.setAdapter(mAdapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
Log.d(TAG, "onItemClick: position=" + position);
MediaRouter.RouteInfo info = mRouteInfos.get(position);
mMediaRouter.selectRoute(info);
}
});
mMediaRouter = MediaRouter.getInstance(getApplicationContext());
// Create a MediaRouteSelector for the type of routes your app supports
mMediaRouteSelector = new MediaRouteSelector.Builder().addControlCategory(CastMediaControlIntent.categoryForCast(getResources().getString(R.string.app_id))).build();
// Create a MediaRouter callback for discovery events
mMediaRouterCallback = new MyMediaRouterCallback();
}
use of android.support.v7.media.MediaRouter in project AndroidChromium by JackyAndroid.
the class DefaultMediaRouteController method processMediaStatusBundle.
private void processMediaStatusBundle(Bundle statusBundle) {
if (statusBundle == null)
return;
logBundle("processMediaStatusBundle: ", statusBundle);
String itemId = statusBundle.getString(MediaControlIntent.EXTRA_ITEM_ID);
if (itemId == null || !itemId.equals(mCurrentItemId))
return;
// Extract item metadata, if available.
if (statusBundle.containsKey(MediaControlIntent.EXTRA_ITEM_METADATA)) {
Bundle metadataBundle = (Bundle) statusBundle.getParcelable(MediaControlIntent.EXTRA_ITEM_METADATA);
updateTitle(metadataBundle.getString(MediaItemMetadata.KEY_TITLE, mPreferredTitle));
}
// Extract the item status, if available.
if (statusBundle.containsKey(MediaControlIntent.EXTRA_ITEM_STATUS)) {
Bundle itemStatusBundle = (Bundle) statusBundle.getParcelable(MediaControlIntent.EXTRA_ITEM_STATUS);
MediaItemStatus itemStatus = MediaItemStatus.fromBundle(itemStatusBundle);
logBundle("Received item status: ", itemStatusBundle);
updateState(itemStatus.getPlaybackState());
// Update the PositionExtrapolator that the playback state has changed.
if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) {
mPositionExtrapolator.onResumed();
} else if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) {
mPositionExtrapolator.onFinished();
} else {
mPositionExtrapolator.onPaused();
}
if ((getRemotePlayerState() == PlayerState.PAUSED) || (getRemotePlayerState() == PlayerState.PLAYING) || (getRemotePlayerState() == PlayerState.LOADING)) {
this.mCurrentItemId = itemId;
// duration can possibly be -1 if it's unknown, so cap to 0
long duration = Math.max(itemStatus.getContentDuration(), 0);
// update the position using the remote player's position
// duration can possibly be -1 if it's unknown, so cap to 0
long position = Math.min(Math.max(itemStatus.getContentPosition(), 0), duration);
// TODO(zqzhang): The GMS core currently uses SystemClock.uptimeMillis() as
// timestamp, which does not conform to the MediaRouter support library docs. See
// b/28378525 and
// http://developer.android.com/reference/android/support/v7/media/MediaItemStatus.html#getTimestamp().
// Override the timestamp with elapsedRealtime() by assuming the delay between the
// GMS core produces the MediaItemStatus and the code reaches here is short enough.
// long timestamp = itemStatus.getTimestamp();
long timestamp = SystemClock.elapsedRealtime();
notifyDurationUpdated(duration);
notifyPositionUpdated(position);
mPositionExtrapolator.onPositionInfoUpdated(duration, position, timestamp);
if (mSeeking) {
mSeeking = false;
if (getMediaStateListener() != null)
getMediaStateListener().onSeekCompleted();
}
}
logExtraHttpInfo(itemStatus.getExtras());
}
}
Aggregations