コード例 #1
0
        private void ShowStatistics()
        {
            MediaRouter.RouteInfo route = mMediaRouter.SelectedRoute;
            Intent intent = MakeStatisticsIntent();

            if (route.SupportsControlRequest(intent))
            {
                MediaRouterControlRequestCallback callback = new MediaRouterControlRequestCallback();

                callback.OnResultEvent += (data) => {
                    Log.Debug(TAG, "Statistics request succeeded: data=" + data);
                    if (data != null)
                    {
                        int playbackCount = data.GetInt(
                            SampleMediaRouteProvider.DATA_PLAYBACK_COUNT, -1);
                        Toast.MakeText(this,
                                       "Total playback count: " + playbackCount,
                                       ToastLength.Long).Show();
                    }
                    else
                    {
                        Toast.MakeText(this,
                                       "Statistics query did not return any data",
                                       ToastLength.Long).Show();
                    }
                };

                callback.OnErrorEvent += (error, data) => {
                    Log.Debug(TAG, "Statistics request failed: error=" + error + ", data=" + data);
                    Toast.MakeText(this,
                                   "Unable to query statistics, error: " + error,
                                   ToastLength.Long).Show();
                };

                Log.Debug(TAG, "Sent statistics request: intent=" + intent);
                route.SendControlRequest(intent, callback);
            }
            else
            {
                Log.Debug(TAG, "Statistics request not supported: intent=" + intent);
                Toast.MakeText(this,
                               "Statistics not supported.", ToastLength.Long).Show();
            }
        }
コード例 #2
0
        private void Play()
        {
            var item = CheckedMediaItem;

            if (item == null)
            {
                return;
            }

            var route  = mMediaRouter.SelectedRoute;
            var intent = MakePlayIntent(item);

            if (route.SupportsControlRequest(intent))
            {
                MediaRouterControlRequestCallback callback = new MediaRouterControlRequestCallback();

                callback.OnResultEvent += (data) => {
                    string streamId = data != null?data.GetString(MediaControlIntent.ExtraItemId) : null;

                    Log.Debug(TAG, "Play request succeeded: data=" + data + " , streamId=" + streamId);
                    Toast.MakeText(this,
                                   "Now playing " + item.mName,
                                   ToastLength.Long).Show();
                };

                callback.OnErrorEvent += (error, data) => {
                    Log.Debug(TAG, "Play request failed: error=" + error + ", data=" + data);
                    Toast.MakeText(this,
                                   "Unable to play " + item.mName + ", error: " + error,
                                   ToastLength.Long).Show();
                };

                Log.Debug(TAG, "Sending play request: intent=" + intent);
                route.SendControlRequest(intent, callback);
            }
            else
            {
                Log.Debug(TAG, "Play request not supported: intent=" + intent);
                Toast.MakeText(this,
                               "Play not supported for " + item.mName, ToastLength.Long).Show();
            }
        }