Search in sources :

Example 1 with MediaRouter

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();
}
Also used : MediaRouteSelector(android.support.v7.media.MediaRouteSelector) CustomMediaRouteDialogFactory(com.example.mediarouter.mediaroutedialog.CustomMediaRouteDialogFactory)

Example 2 with MediaRouter

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();
}
Also used : View(android.view.View) AdapterView(android.widget.AdapterView) ListView(android.widget.ListView) MediaRouteSelector(android.support.v7.media.MediaRouteSelector) ListView(android.widget.ListView) AdapterView(android.widget.AdapterView) RouteInfo(android.support.v7.media.MediaRouter.RouteInfo)

Example 3 with MediaRouter

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());
    }
}
Also used : Bundle(android.os.Bundle) MediaItemStatus(android.support.v7.media.MediaItemStatus)

Aggregations

MediaRouteSelector (android.support.v7.media.MediaRouteSelector)2 Bundle (android.os.Bundle)1 MediaItemStatus (android.support.v7.media.MediaItemStatus)1 RouteInfo (android.support.v7.media.MediaRouter.RouteInfo)1 View (android.view.View)1 AdapterView (android.widget.AdapterView)1 ListView (android.widget.ListView)1 CustomMediaRouteDialogFactory (com.example.mediarouter.mediaroutedialog.CustomMediaRouteDialogFactory)1