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