Example #1
0
        protected override void OnElementChanged(ElementChangedEventArgs <MyCastButton> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                if (Control == null)
                {
                    mediaRouteButton = new MediaRouteButton(Context);

                    mediaRouter        = MediaRouter.GetInstance(Context);
                    mediaRouteSelector = new MediaRouteSelector
                                         .Builder()
                                         .AddControlCategory(CastMediaControlIntent.CategoryForCast("0A6928D1"))
                                         .Build();

                    mediaRouterCallback = new CustomMediaRouterCallBack();
                    mediaRouter.AddCallback(mediaRouteSelector, mediaRouterCallback, MediaRouter.CallbackFlagPerformActiveScan);
                    mediaRouteButton.RouteSelector = mediaRouteSelector;

                    //CastButtonFactory.SetUpMediaRouteButton(Context, mediaRouteButton);
                    //var castContext = CastContext.SharedInstance;
                    //castContext.
                    linearLayout = new LinearLayout(Context);
                    linearLayout.AddView(mediaRouteButton);

                    SetNativeControl(linearLayout);
                }
            }
        }
Example #2
0
        private void InitCast()
        {
            castContext = CastContext.GetSharedInstance(this.ApplicationContext);

            castContext.SessionManager.AddSessionManagerListener(this);

            //var prov = new MediaRouteActionProvider(Application.Context);

            callback = new MediaRouteSelectorCallback();

            mediaRouteSelector = new MediaRouteSelector.Builder()
                                 // These are the framework-supported intents
                                 .AddControlCategory(MediaControlIntent.CategoryRemotePlayback)
                                 .AddControlCategory(MediaControlIntent.CategoryLiveAudio)
                                 .AddControlCategory(CastMediaControlIntent.CategoryForCast(CastMediaControlIntent.DefaultMediaReceiverApplicationId))
                                 .Build();

            mediaRouter = MediaRouter.GetInstance(this.ApplicationContext);
        }
Example #3
0
        void Init ()
        {
            mediaRouter = MediaRouter.GetInstance (this);

            mediaRouteSelector =
                new MediaRouteSelector.Builder ().AddControlCategory (MediaControlIntent.CategoryRemotePlayback) //CastMediaControlIntent.CategoryForCast (APP_ID))
                    .Build();
            mediaRouteButton.RouteSelector = mediaRouteSelector;

            myMediaRouterCallback = new MyMediaRouterCallback {
                OnRouteSelectedHandler = (router, route) => {

                    Console.WriteLine ("Route Selected: " + route.Name);

                    var device = CastDevice.GetFromBundle(route.Extras);

                    myCastListener = new MyCastListener();

                    var apiOptionsBuilder = new CastClass.CastOptions.Builder (
                        device,
                        myCastListener).SetVerboseLoggingEnabled (true);

                    googleApiClient = new GoogleApiClientBuilder(this)
                        .AddApi (CastClass.API, apiOptionsBuilder.Build())
                        .AddConnectionCallbacks (this)
                        .AddOnConnectionFailedListener (this)
                        .Build ();

                    googleApiClient.Connect();

                },
                OnRouteUnselectedHandler = (router, route) => {
                    Console.WriteLine ("Route Unselected: " + route.Name);
                },
                RouteCountChangedHandler = newCount => {
                    mediaRouteButton.Visibility = newCount > 0 ? ViewStates.Visible : ViewStates.Gone;
                }
            };

            mediaRouter.AddCallback(mediaRouteSelector, myMediaRouterCallback, MediaRouter.CallbackFlagRequestDiscovery);
        }
		protected override void OnCreate (Bundle savedInstanceState)
		{
			base.OnCreate (savedInstanceState);

			SetContentView (Resource.Layout.activity_main);

			this.InitToolbar();

			_mediaRouter = MediaRouter.GetInstance(ApplicationContext);

			_mediaRouteSelector = new MediaRouteSelector.Builder()
				.AddControlCategory(CastMediaControlIntent.CategoryForCast(GetAppId()))
				.Build();
			
			_mediaRouterCallback = new MyMediaRouterCallback
			{
				RouteSelected = OnRouteSelected,
				RouteUnselected = OnRouteUnselected
			};

			Setup ();
		}
Example #5
0
        void Init()
        {
            mediaRouter = MediaRouter.GetInstance(this);

            mediaRouteSelector =
                new MediaRouteSelector.Builder().AddControlCategory(MediaControlIntent.CategoryRemotePlayback)   //CastMediaControlIntent.CategoryForCast (APP_ID))
                .Build();
            mediaRouteButton.RouteSelector = mediaRouteSelector;

            myMediaRouterCallback = new MyMediaRouterCallback {
                OnRouteSelectedHandler = (router, route) => {
                    Console.WriteLine("Route Selected: " + route.Name);

                    var device = CastDevice.GetFromBundle(route.Extras);

                    myCastListener = new MyCastListener();

                    var apiOptionsBuilder = new CastClass.CastOptions.Builder(
                        device,
                        myCastListener).SetVerboseLoggingEnabled(true);

                    googleApiClient = new GoogleApiClientBuilder(this)
                                      .AddApi(CastClass.API, apiOptionsBuilder.Build())
                                      .AddConnectionCallbacks(this)
                                      .AddOnConnectionFailedListener(this)
                                      .Build();

                    googleApiClient.Connect();
                },
                OnRouteUnselectedHandler = (router, route) => {
                    Console.WriteLine("Route Unselected: " + route.Name);
                },
                RouteCountChangedHandler = newCount => {
                    mediaRouteButton.Visibility = newCount > 0 ? ViewStates.Visible : ViewStates.Gone;
                }
            };

            mediaRouter.AddCallback(mediaRouteSelector, myMediaRouterCallback, MediaRouter.CallbackFlagRequestDiscovery);
        }
Example #6
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_main);

            this.InitToolbar();

            _mediaRouter = MediaRouter.GetInstance(ApplicationContext);

            _mediaRouteSelector = new MediaRouteSelector.Builder()
                                  .AddControlCategory(CastMediaControlIntent.CategoryForCast(GetAppId()))
                                  .Build();

            _mediaRouterCallback = new MyMediaRouterCallback
            {
                RouteSelected   = OnRouteSelected,
                RouteUnselected = OnRouteUnselected
            };

            Setup();
        }
Example #7
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Get the media router service.
            mMediaRouter = MediaRouter.GetInstance(this);

            // Create a route selector for the type of routes that we care about.
            mSelector = new MediaRouteSelector.Builder()
                        .AddControlCategory(MediaControlIntent.CategoryLiveAudio)
                        .AddControlCategory(MediaControlIntent.CategoryLiveVideo)
                        .AddControlCategory(MediaControlIntent.CategoryRemotePlayback)
                        .AddControlCategory(SampleMediaRouteProvider.CATEGORY_SAMPLE_ROUTE)
                        .Build();

            // Add a fragment to take care of media route discovery.
            // This fragment automatically adds or removes a callback whenever the activity
            // is started or stopped.
            var fm = SupportFragmentManager;

            if (fm.FindFragmentByTag(DISCOVERY_FRAGMENT_TAG) == null)
            {
                DiscoveryFragment fragment = new DiscoveryFragment(this);
                fragment.RouteSelector = mSelector;
                fm.BeginTransaction()
                .Add(fragment, DISCOVERY_FRAGMENT_TAG)
                .Commit();
            }

            // Populate an array adapter with fake media items.
            string[] mediaNames = Resources.GetStringArray(Resource.Array.media_names);
            string[] mediaUris  = Resources.GetStringArray(Resource.Array.media_uris);
            mMediaItems = new ArrayAdapter <MediaItem>(this,
                                                       Android.Resource.Layout.SimpleListItemSingleChoice, Android.Resource.Id.Text1);
            for (int i = 0; i < mediaNames.Length; i++)
            {
                mMediaItems.Add(new MediaItem(mediaNames[i], Android.Net.Uri.Parse(mediaUris[i])));
            }

            // Initialize the layout.
            SetContentView(Resource.Layout.sample_media_router);

            mInfoTextView = FindViewById <TextView> (Resource.Id.info);

            mMediaListView            = FindViewById <ListView> (Resource.Id.media);
            mMediaListView.Adapter    = mMediaItems;
            mMediaListView.ChoiceMode = ChoiceMode.Single;
            mMediaListView.ItemClick += (sender, e) => {
                UpdateButtons();
            };

            mPlayButton        = FindViewById <Button> (Resource.Id.play_button);
            mPlayButton.Click += (sender, e) => {
                Play();
            };

            mStatisticsButton        = FindViewById <Button>(Resource.Id.statistics_button);
            mStatisticsButton.Click += (sender, e) => {
                ShowStatistics();
            };
        }