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); } } }
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); }
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 (); }
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(); }
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(); }; }