示例#1
0
 public override bool OnCreateOptionsMenu(IMenu menu)
 {
     base.OnCreateOptionsMenu(menu);
     MenuInflater.Inflate(Resource.Menu.menu, menu);
     CastButtonFactory.SetUpMediaRouteButton(this, menu, Resource.Id.media_route_menu_item);
     return(true);
 }
        public override bool OnCreateOptionsMenu(IMenu menu)
        {
            var b = base.OnCreateOptionsMenu(menu);

            MenuInflater.Inflate(Resource.Menu.browse, menu);
            CastButtonFactory.SetUpMediaRouteButton(ApplicationContext, menu, Resource.Id.media_route_menu_item);
            return(b);
        }
示例#3
0
文件: Player.cs 项目: pictos/Opus
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            instance = this;
            View view = inflater.Inflate(Resource.Layout.player, container, false);

            if (!view.FindViewById <ImageButton>(Resource.Id.playButton).HasOnClickListeners)
            {
                view.FindViewById <ImageButton>(Resource.Id.downButton).Click += Down_Click;
                view.FindViewById <ImageButton>(Resource.Id.showQueue).Click  += ShowQueue_Click;
                view.FindViewById <ImageButton>(Resource.Id.lastButton).Click += Last_Click;
                view.FindViewById <ImageButton>(Resource.Id.playButton).Click += Play_Click;
                view.FindViewById <ImageButton>(Resource.Id.nextButton).Click += Next_Click;
                view.FindViewById <ImageButton>(Resource.Id.moreButton).Click += More;
                view.FindViewById <ImageButton>(Resource.Id.repeat).Click     += (sender, e) => { MusicPlayer.Repeat(); };
                view.FindViewById <ImageButton>(Resource.Id.fav).Click        += Fav;
            }

            albumArt             = view.FindViewById <ImageView>(Resource.Id.playerAlbum);
            timer                = view.FindViewById <TextView>(Resource.Id.timer);
            bar                  = view.FindViewById <SeekBar>(Resource.Id.songTimer);
            bar.ProgressChanged += async(sender, e) =>
            {
                if (!MusicPlayer.isLiveStream)
                {
                    timer.Text = string.Format("{0} | {1}", DurationToTimer(e.Progress), DurationToTimer(await MusicPlayer.Duration()));
                }
            };
            bar.StartTrackingTouch += (sender, e) =>
            {
                MusicPlayer.autoUpdateSeekBar = false;
            };
            bar.StopTrackingTouch += async(sender, e) =>
            {
                MusicPlayer.autoUpdateSeekBar = true;
                if (!(await MusicPlayer.GetItem()).IsLiveStream)
                {
                    MusicPlayer.SeekTo(e.SeekBar.Progress);
                }
            };

            DrawerLayout = view.FindViewById <DrawerLayout>(Resource.Id.queueDrawer);
            DrawerLayout.AddDrawerListener(new QueueListener(view.FindViewById <ImageView>(Resource.Id.queueBackground)));

            DisplayMetrics metrics = new DisplayMetrics();

            Activity.WindowManager.DefaultDisplay.GetMetrics(metrics);
            view.FindViewById(Resource.Id.queueParent).LayoutParameters.Width = (int)(metrics.WidthPixels * 0.75f);
            ((FrameLayout.LayoutParams)view.FindViewById(Resource.Id.queue).LayoutParameters).TopMargin = Resources.GetDimensionPixelSize(Resources.GetIdentifier("status_bar_height", "dimen", "android"));

            spBar = Activity.FindViewById <ProgressBar>(Resource.Id.spProgress);
            CastButtonFactory.SetUpMediaRouteButton(Activity, view.FindViewById <MediaRouteButton>(Resource.Id.castButton));
            RefreshPlayer();
            return(view);
        }
        protected override void OnElementChanged(ElementChangedEventArgs <CastButton> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                _nativeCastButton = new MediaRouteButton(_context);
                SetNativeControl(_nativeCastButton);
                CastButtonFactory.SetUpMediaRouteButton(_context, _nativeCastButton);
            }
        }
示例#5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            RequestedOrientation = Android.Content.PM.ScreenOrientation.Landscape;
            base.OnCreate(savedInstanceState);

            castSessionManagerListener = new CastSessionManagerListener(this);
            castContext = CastContext.GetSharedInstance(this);
            castSession = castContext.SessionManager.CurrentCastSession;
            castContext.SessionManager.AddSessionManagerListener(castSessionManagerListener);

            //setup layout and video data
            SetContentView(Resource.Layout.playerPageLayout);
            mediaInfo = chromecastService.Value.GetPlaybackAsset();

            //TITLE
            assetTitle          = FindViewById <TextView>(Resource.Id.assetTitle);
            assetTitle.Text     = mediaInfo.DisplayName;
            assetTitle.TextSize = 20;

            //BACKBUTTON
            backButton        = FindViewById <Button>(Resource.Id.backButton);
            backButton.Click += BackButton_Click;

            //Cast Button setup
            castButton = (MediaRouteButton)FindViewById(Resource.Id.media_route_button);
            CastButtonFactory.SetUpMediaRouteButton(ApplicationContext, castButton);

            //VideoPlayer Source
            videoView = FindViewById <VideoView>(Resource.Id.video_view);
            var videoURL = Android.Net.Uri.Parse(mediaInfo.SourceURL);

            mController = new Android.Widget.MediaController(this);
            mController.SetAnchorView(videoView);
            videoView.SetVideoURI(videoURL);
            videoView.SetMediaController(mController);

            if (mLocation == PlaybackLocation.LOCAL)
            {
                videoView.Start();
            }
            else
            {
                castSession = castContext.SessionManager.CurrentCastSession;
                if ((castSession != null) && (castSession.IsConnected == true))
                {
                    //setup media to send to cast receiver
                    mLocation = PlaybackLocation.REMOTE;
                    var test = castContext.SessionManager.CurrentCastSession;

                    //call/initialize customCastMediaManager if needed. this sample uses default things
                }
            }
        }