public void InitWithFrame() { RectangleF frame = new RectangleF(10, 10, 100, 100); using (MPVolumeView vv = new MPVolumeView(frame)) { Assert.That(vv.Frame, Is.EqualTo(frame), "Frame"); } }
public override void ViewDidLoad() { base.ViewDidLoad (); _warningLabel = new UILabel(new RectangleF(20, 30, 280, 20)); _warningLabel.Text = "This example will only work on device."; _warningLabel.Font = UIFont.FromName("GillSans", UIFont.SystemFontSize); _warningLabel.TextAlignment = UITextAlignment.Center; _volumeView = new MPVolumeView(); _volumeView.SetStyleId("sample-volume"); View.SetStyleClass("sample-background"); View.AddSubview(_warningLabel); View.AddSubview(_volumeView); }
public BottomView() { Add(backgroundBluredView = new BluredView()); Add(slider = new ProgressView()); Add(timeLabel = new UILabel { Text = "0000:00", AccessibilityIdentifier = "CurrentTime" }.StyleAsSubText()); Add(remainingTimeLabel = new UILabel { Text = "0000:00", AccessibilityIdentifier = "RemainingTime", TextAlignment = UITextAlignment.Right }.StyleAsSubText()); timeLabel.SizeToFit(); remainingTimeLabel.SizeToFit(); Add(labelView = new TwoLabelView { TopLabel = { TextAlignment = UITextAlignment.Center }, BottomLabel = { TextAlignment = UITextAlignment.Center }, }); labelView.TopLabel.StylePlaybackControl(); labelView.BottomLabel.StylePlaybackControl(); var buttonFrame = new CGRect(0, 0, 44, 44); Add(thumbsDownButton = new SimpleButton { Image = Images.GetThumbsDownImage(25).ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "ThumbsDown", TintColor = UIColor.Black, Tapped = async(b) => { var song = MusicManager.Shared.GetCurrentSong(); if (song.Rating != 1) { await MusicManager.Shared.ThumbsDown(song); } else { await MusicManager.Shared.Unrate(song); } SetThumbsState(song); } }); Add(thumbsUpButton = new SimpleButton { Image = Images.GetThumbsUpImage(25).ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "ThumbsUp", TintColor = UIColor.Black, Tapped = async(b) => { var song = MusicManager.Shared.GetCurrentSong(); if (song.Rating != 5) { await MusicManager.Shared.ThumbsUp(song); } else { await MusicManager.Shared.Unrate(song); } SetThumbsState(song); } }); Add(previousButton = new SimpleButton { Image = Images.GetPreviousButton(nextbuttonSize), Frame = buttonFrame, AccessibilityIdentifier = "Previous", Tapped = button => PlaybackManager.Shared.Previous(), }); Add(playButton = new SimpleButton { Image = Images.GetPlaybackButton(playButtonSize), Frame = buttonFrame, AccessibilityIdentifier = "Play", TintColor = UIColor.Black, Tapped = (button) => PlaybackManager.Shared.PlayPause() }); Add(nextButton = new SimpleButton { Image = Images.GetNextButton(nextbuttonSize), Frame = buttonFrame, AccessibilityIdentifier = "Next", Tapped = (button) => PlaybackManager.Shared.NextTrack() }); Add(volumeView = new MPVolumeView()); volumeView.SetRouteButtonImage(Images.GetAirplayButton(20), UIControlState.Normal); volumeView.TintColor = Style.DefaultStyle.AccentColor; Add(shareButton = new SimpleButton { Image = Images.GetShareIcon(18).ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "Share", Tapped = (b) => ShareSong(), Enabled = false, }); Add(shuffleButton = new SimpleButton { Image = Images.GetShuffleImage(18).ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "Shuffle", Tapped = (button) => PlaybackManager.Shared.ToggleRandom(), }); Add(repeatButton = new SimpleButton { Image = Images.GetRepeatImage(18).ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "Repeat", Tapped = (button) => PlaybackManager.Shared.ToggleRepeat(), }); Add(menuButton = new SimpleButton { Image = Images.DisclosureImage.Value.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), Frame = buttonFrame, AccessibilityIdentifier = "More", TintColor = UIColor.Black, Tapped = (b) => { PopupManager.Shared.ShowNowPlaying(b); } }); }
/// <summary> /// Disables the volume HUD. /// </summary> /// <remarks>>Creates a new MPVolumeView and adds it to the mainwindow in the "off-screen" area. Adding this view suppresses showing the volume HUD</remarks> private void disableVolumeHUD() { _volumeView = new MPVolumeView (new CoreGraphics.CGRect (float.MaxValue, float.MaxValue, 0, 0)); UIApplication.SharedApplication.Windows [0].AddSubview (_volumeView); }
/// <summary> /// Disables the volume HUD. /// </summary> /// <remarks>>Creates a new MPVolumeView and adds it to the mainwindow in the "off-screen" area. Adding this view suppresses showing the volume HUD</remarks> private void disableVolumeHUD() { _volumeView = new MPVolumeView(new CoreGraphics.CGRect(float.MaxValue, float.MaxValue, 0, 0)); UIApplication.SharedApplication.Windows[0].AddSubview(_volumeView); }
public override void ViewDidLoad() { base.ViewDidLoad (); Console.WriteLine ("PBS VDL"); this.NavigationController.NavigationBar.TintColor = UIColor.FromRGB (237, 152, 0); this.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB (52, 19, 0); float sH = UIScreen.MainScreen.Bounds.Height; float sW = UIScreen.MainScreen.Bounds.Width; var volumeView = new MPVolumeView(new RectangleF(50,sH - 100,200,50)); volumeView.ShowsVolumeSlider = true; volumeView.ShowsRouteButton = true; volumeView.TintColor = UIColor.FromRGB (237, 152, 0); View.AddSubview (volumeView); var volumeUpView = new UIImageView (new RectangleF (260, sH - 104, 26, 26)); volumeUpView.Image = UIImage.FromFile("volume_up-26.png"); View.AddSubview (volumeUpView); var volumeDownView = new UIImageView (new RectangleF (20, sH - 104, 26, 26)); volumeDownView.Image = UIImage.FromFile ("volume_down-26.png"); View.AddSubview (volumeDownView); var pickerView = new UIPickerView (new RectangleF (0, sH - 207, sW, 162)); // heigth must be 162, 180, 216 pickerView.BackgroundColor = UIColor.FromRGB (52, 19, 0); pickerView.TintColor = UIColor.FromRGB (237, 152, 0); // not adding to the view yet because this is a multipurpose picker and the addition is done per the purpose with the btn delegate positionSld.SetThumbImage (UIImage.FromFile ("position.png"), UIControlState.Normal); positionSld.MinValue = 0f; // disable all the buttons I don't want enabled when not playing playPauseBtn.Enabled = false; positionSkipBtn.Enabled = false; stopBtn.Enabled = false; timerBtn.Enabled = false; pickerSetBtn.Hidden = true; pickerSetBtn.Enabled = false; pickerCnlBtn.Hidden = true; pickerCnlBtn.Enabled = false; pickerLbl.Hidden = true; if (resumeCheck == 1) { Console.WriteLine ("F: VDL RPA: " + resumePassAuthor); ResumeBook (resumePassTitle, resumePassAuthor); } _musicPlayer = new MPMusicPlayerController (); _mediaController = new MPMediaPickerController (MPMediaType.Music); _mediaController.AllowsPickingMultipleItems = false; _mpDelegate = new MediaPickerDelegate (this); _mediaController.Delegate = _mpDelegate; infoScreen = new InfoScreen (); addMusicBtn.TouchUpInside += delegate { this.PresentViewController(_mediaController, true, null); }; infoBtn.TouchUpInside += delegate { this.PresentViewController(infoScreen, true, null); }; positionSkipBtn.Clicked += delegate { pickerView.Model = new ThePickerViewModel(0); View.AddSubview(pickerView); pickerLbl.Text = "Skip To"; pickerLbl.Hidden = false; pickerSetBtn.Enabled = true; pickerSetBtn.Hidden = false; pickerCnlBtn.Enabled = true; pickerCnlBtn.Hidden = false; }; timerBtn.Clicked += (object sender, EventArgs e) => { pickerView.Model = new ThePickerViewModel(1); View.AddSubview(pickerView); pickerLbl.Text = "Sleep Timer"; pickerLbl.Hidden = false; pickerSetBtn.Enabled = true; pickerSetBtn.Hidden = false; pickerCnlBtn.Enabled = true; pickerCnlBtn.Hidden = false; }; pickerSetBtn.TouchUpInside += delegate { if (pickerLbl.Text == "Skip To"){ int hourValue = pickerView.SelectedRowInComponent(0); int minValue = pickerView.SelectedRowInComponent(1); int secValue = pickerView.SelectedRowInComponent(2); double pickedTimeValue = ((hourValue * 3600) + (minValue * 60) + secValue); int pickedTimeInt = Convert.ToInt32(pickedTimeValue); _musicPlayer.CurrentPlaybackTime = pickedTimeValue; string pickerTimeDisplay = string.Format("{0:#0}:{1:00}:{2:00}",pickedTimeInt/3600,(pickedTimeInt/60)%60,pickedTimeInt%60); currentTimeLbl.Text = pickerTimeDisplay; positionSld.SetValue( (float)(pickedTimeValue), true); pickerView.RemoveFromSuperview(); pickerLbl.Hidden = true; pickerSetBtn.Hidden = true; pickerSetBtn.Enabled = false; pickerCnlBtn.Hidden = true; pickerCnlBtn.Enabled = false; } else if (pickerLbl.Text == "Sleep Timer"){ int hourValue = pickerView.SelectedRowInComponent(0); int minValue = pickerView.SelectedRowInComponent(1); double timeToSleep = ((hourValue * 3600) + (minValue * 60)); StartSleepTimer(timeToSleep); pickerView.RemoveFromSuperview(); pickerLbl.Hidden = true; pickerSetBtn.Hidden = true; pickerSetBtn.Enabled = false; pickerCnlBtn.Hidden = true; pickerCnlBtn.Enabled = false; } else { pickerView.RemoveFromSuperview(); pickerLbl.Hidden = true; pickerSetBtn.Hidden = true; pickerSetBtn.Enabled = false; pickerCnlBtn.Hidden = true; pickerCnlBtn.Enabled = false; } }; pickerCnlBtn.TouchUpInside += delegate { pickerView.RemoveFromSuperview(); pickerLbl.Hidden = true; pickerSetBtn.Hidden = true; pickerSetBtn.Enabled = false; pickerCnlBtn.Hidden = true; pickerCnlBtn.Enabled = false; }; playPauseBtn.Clicked += (object sender, EventArgs e) => { // can I use the playback state for this if statement instead PlayPauseSwitch? if (PlayPauseSwitch == null || PlayPauseSwitch == "play"){ PlayPauseSwitch = "pause"; _musicPlayer.CurrentPlaybackTime = ResumePointVault; Console.WriteLine("playcurrentspot: {0}", _musicPlayer.CurrentPlaybackTime); _musicPlayer.Play(); stopBtn.Enabled = true; timerBtn.Enabled = true; double fileLengthRaw = _musicPlayer.NowPlayingItem.PlaybackDuration; StartTimer(); _musicPlayer.BeginGeneratingPlaybackNotifications(); Console.WriteLine("enabled notifications"); // debugging } else{ PlayPauseSwitch = "play"; ResumePointVault = _musicPlayer.CurrentPlaybackTime; _musicPlayer.Pause(); refreshTimer.Invalidate(); } }; positionSld.ValueChanged += delegate { _musicPlayer.CurrentPlaybackTime = positionSld.Value; }; stopBtn.Clicked += (object sender, EventArgs e) => { Stopper(); }; //Lambda Style notfication substription notification = MPMusicPlayerController.Notifications.ObservePlaybackStateDidChange ((sender, args) => { string val = args.Notification.UserInfo ["MPMusicPlayerControllerPlaybackStateKey"].ToString (); Console.WriteLine ("Notification: {0}", args.Notification.UserInfo ["MPMusicPlayerControllerPlaybackStateKey"]); PlayPauseImage (val); }); }
public override void ViewDidLoad() { var screenSize = UIKitHelper.GetDeviceSize(); tableView.WeakDataSource = this; tableView.WeakDelegate = this; UILongPressGestureRecognizer longPress = new UILongPressGestureRecognizer(HandleLongPress); longPress.MinimumPressDuration = 0.7f; longPress.WeakDelegate = this; tableView.AddGestureRecognizer(longPress); viewOptions.BackgroundColor = GlobalTheme.BackgroundColor; switchBypass.OnTintColor = GlobalTheme.SecondaryColor; switchBypass.On = false; switchBypass.ValueChanged += HandleSwitchBypassValueChanged; //sliderMasterVolume.SetThumbImage(UIImage.FromBundle("Images/Sliders/thumb"), UIControlState.Normal); //sliderMasterVolume.SetMinTrackImage(UIImage.FromBundle("Images/Sliders/slider2").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); //sliderMasterVolume.SetMaxTrackImage(UIImage.FromBundle("Images/Sliders/slider").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); //sliderMasterVolume.ValueChanged += HandleSliderMasterVolumeValueChanged; var btnDone = new SessionsFlatButton(); btnDone.Label.Text = "Done"; btnDone.Frame = new RectangleF(0, 0, 70, 44); btnDone.OnButtonClick += () => { NavigationController.DismissViewController(true, null); }; var btnDoneView = new UIView(new RectangleF(0, 0, 70, 44)); var rect = new RectangleF(btnDoneView.Bounds.X + 16, btnDoneView.Bounds.Y, btnDoneView.Bounds.Width, btnDoneView.Bounds.Height); btnDoneView.Bounds = rect; btnDoneView.AddSubview(btnDone); _btnDone = new UIBarButtonItem(btnDoneView); var btnAdd = new SessionsFlatButton(); btnAdd.LabelAlignment = UIControlContentHorizontalAlignment.Right; btnAdd.Label.Text = "Add"; btnAdd.Label.TextAlignment = UITextAlignment.Right; btnAdd.Label.Frame = new RectangleF(0, 0, 44, 44); btnAdd.ImageChevron.Image = UIImage.FromBundle("Images/Tables/plus_blue"); btnAdd.ImageChevron.Frame = new RectangleF(70 - 22, 0, 22, 44); btnAdd.Frame = new RectangleF(0, 0, 70, 44); btnAdd.OnButtonClick += HandleButtonAddTouchUpInside; var btnAddView = new UIView(new RectangleF(UIScreen.MainScreen.Bounds.Width - 70, 0, 70, 44)); var rect2 = new RectangleF(btnAddView.Bounds.X - 16, btnAddView.Bounds.Y, btnAddView.Bounds.Width, btnAddView.Bounds.Height); btnAddView.Bounds = rect2; btnAddView.AddSubview(btnAdd); _btnAdd = new UIBarButtonItem(btnAddView); NavigationItem.SetLeftBarButtonItem(_btnDone, true); NavigationItem.SetRightBarButtonItem(_btnAdd, true); var navCtrl = (SessionsNavigationController)NavigationController; navCtrl.SetBackButtonVisible(false); // Create MPVolumeView (only visible on physical iOS device) RectangleF rectVolume; if (UserInterfaceIdiomIsPhone) rectVolume = new RectangleF(74, 25, 236, 46); else rectVolume = new RectangleF(74, 25, 236, 46); _volumeView = new MPVolumeView(rectVolume); _volumeView.SetMinimumVolumeSliderImage(UIImage.FromBundle("Images/Sliders/slider2").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); _volumeView.SetMaximumVolumeSliderImage(UIImage.FromBundle("Images/Sliders/slider").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); _volumeView.SetVolumeThumbImage(UIImage.FromBundle("Images/Sliders/thumbbig"), UIControlState.Normal); this.View.AddSubview(_volumeView); base.ViewDidLoad(); var navigationManager = Bootstrapper.GetContainer().Resolve<MobileNavigationManager>(); navigationManager.BindEqualizerPresetsView(null, this); }
public VolumeViewRenderer() { AddSubview(mPVolumeView = new MPVolumeView()); }
public override void ViewDidLoad() { if (UIDevice.CurrentDevice.CheckSystemVersion(7, 0)) { UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, true); } View.BackgroundColor = GlobalTheme.BackgroundColor; btnPrevious.GlyphImageView.Image = UIImage.FromBundle("Images/Player/previous"); btnPlayPause.GlyphImageView.Image = UIImage.FromBundle("Images/Player/pause"); btnNext.GlyphImageView.Image = UIImage.FromBundle("Images/Player/next"); btnShuffle.GlyphImageView.Image = UIImage.FromBundle("Images/Player/shuffle"); btnRepeat.GlyphImageView.Image = UIImage.FromBundle("Images/Player/repeat"); viewPosition.BackgroundColor = GlobalTheme.BackgroundColor; viewMain.BackgroundColor = GlobalTheme.BackgroundColor; viewPageControls.BackgroundColor = GlobalTheme.PlayerPanelBackgroundColor; sliderPosition.SetMinTrackImage(UIImage.FromBundle("Images/Sliders/slider2").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); sliderPosition.SetMaxTrackImage(UIImage.FromBundle("Images/Sliders/slider").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); sliderPosition.SetThumbImage(UIImage.FromBundle("Images/Sliders/thumb"), UIControlState.Normal); // Reduce the song position slider size for iPhone sliderPosition.Transform = CGAffineTransform.MakeScale(0.7f, 0.7f); // Setup scroll view and page control scrollView.WeakDelegate = this; scrollView.PagingEnabled = true; scrollView.ShowsHorizontalScrollIndicator = false; scrollView.ShowsVerticalScrollIndicator = false; scrollView.DelaysContentTouches = false; UISwipeGestureRecognizer swipeDown = new UISwipeGestureRecognizer(HandleScrollViewSwipeDown); swipeDown.Direction = UISwipeGestureRecognizerDirection.Down; scrollView.AddGestureRecognizer(swipeDown); UISwipeGestureRecognizer swipeUp = new UISwipeGestureRecognizer(HandleScrollViewSwipeUp); swipeUp.Direction = UISwipeGestureRecognizerDirection.Up; scrollView.AddGestureRecognizer(swipeUp); if (scrollViewPlayer != null) { scrollViewPlayer.IndicatorStyle = UIScrollViewIndicatorStyle.White; scrollViewPlayer.PagingEnabled = true; scrollViewPlayer.DelaysContentTouches = false; } // TODO: Block slider when the player is paused. sliderPosition.ScrubbingTypeChanged += (sender, e) => { string scrubbingType = "High-speed scrubbing"; switch(sliderPosition.ScrubbingType) { case SliderScrubbingType.Fine: scrubbingType = "Fine scrubbing"; break; case SliderScrubbingType.QuarterSpeed: scrubbingType = "Quarter-speed scrubbing"; break; case SliderScrubbingType.HalfSpeed: scrubbingType = "Half-speed scrubbing"; break; case SliderScrubbingType.HighSpeed: scrubbingType = "High-speed scrubbing"; break; } lblScrubbingType.Text = scrubbingType; }; sliderPosition.TouchesBeganEvent += (sender, e) => { UIView.Animate(0.2f, () => { float offset = 42; viewPosition.Frame = new RectangleF(viewPosition.Frame.X, viewPosition.Frame.Y, viewPosition.Frame.Width, viewPosition.Frame.Height + offset); scrollViewWaveForm.Frame = new RectangleF(scrollViewWaveForm.Frame.X, scrollViewWaveForm.Frame.Y + offset, scrollViewWaveForm.Frame.Width, scrollViewWaveForm.Frame.Height * 2); scrollViewWaveForm.WaveFormView.Frame = new RectangleF(scrollViewWaveForm.WaveFormView.Frame.X, scrollViewWaveForm.WaveFormView.Frame.Y, scrollViewWaveForm.WaveFormView.Frame.Width, (scrollViewWaveForm.WaveFormView.Frame.Height * 2) + 22); viewMain.Frame = new RectangleF(viewMain.Frame.X, viewPosition.Frame.Height + scrollViewWaveForm.Frame.Height, viewMain.Frame.Width, viewMain.Frame.Height); lblSlideMessage.Alpha = 1; lblScrubbingType.Alpha = 1; scrollViewWaveForm.ShowSecondaryPosition(true); }); }; sliderPosition.TouchesMovedEvent += (sender, e) => { _isPositionChanging = true; _lastSliderPositionValue = sliderPosition.Value / 100; PlayerPositionEntity entity = OnPlayerRequestPosition(sliderPosition.Value / 10000); lblPosition.Text = entity.Position; scrollViewWaveForm.SetSecondaryPosition(entity.PositionBytes); }; sliderPosition.TouchesEndedEvent += (sender, e) => { UIView.Animate(0.2f, () => { float offset = 42; viewPosition.Frame = new RectangleF(viewPosition.Frame.X, viewPosition.Frame.Y, viewPosition.Frame.Width, viewPosition.Frame.Height - offset); scrollViewWaveForm.Frame = new RectangleF(scrollViewWaveForm.Frame.X, scrollViewWaveForm.Frame.Y - offset, scrollViewWaveForm.Frame.Width, scrollViewWaveForm.Frame.Height / 2); scrollViewWaveForm.WaveFormView.Frame = new RectangleF(scrollViewWaveForm.WaveFormView.Frame.X, scrollViewWaveForm.WaveFormView.Frame.Y, scrollViewWaveForm.WaveFormView.Frame.Width, (scrollViewWaveForm.WaveFormView.Frame.Height - 22) / 2); viewMain.Frame = new RectangleF(viewMain.Frame.X, viewPosition.Frame.Height + scrollViewWaveForm.Frame.Height, viewMain.Frame.Width, viewMain.Frame.Height); lblSlideMessage.Alpha = 0; lblScrubbingType.Alpha = 0; }); // Sometimes the position from TouchesEnded is different than the last position returned by TouchesMoved. // This gives the user the impression that the selected position is different. OnPlayerSetPosition(_lastSliderPositionValue); scrollViewWaveForm.ShowSecondaryPosition(false); _isPositionChanging = false; }; // Only display wave form on iPhone 5+ and iPad bool showWaveForm = DarwinHardwareHelper.Version != DarwinHardwareHelper.HardwareVersion.iPhone3GS && DarwinHardwareHelper.Version != DarwinHardwareHelper.HardwareVersion.iPhone4 && DarwinHardwareHelper.Version != DarwinHardwareHelper.HardwareVersion.iPhone4S; scrollViewWaveForm.Hidden = !showWaveForm; scrollViewWaveForm.UserInteractionEnabled = showWaveForm; scrollViewWaveForm.MultipleTouchEnabled = showWaveForm; // Create text attributes for navigation bar button UITextAttributes attr = new UITextAttributes(); attr.Font = UIFont.FromName("HelveticaNeue-Medium", 12); attr.TextColor = UIColor.White; attr.TextShadowColor = UIColor.DarkGray; attr.TextShadowOffset = new UIOffset(0, 0); // // Set back button for navigation bar // _btnBack = new UIBarButtonItem("Back", UIBarButtonItemStyle.Plain, null, null); // _btnBack.SetTitleTextAttributes(attr, UIControlState.Normal); // this.NavigationItem.BackBarButtonItem = _btnBack; // Reset temporary text lblLength.Text = string.Empty; lblPosition.Text = string.Empty; // Create MPVolumeView (only visible on iPad or maybe in the future on iPhone with a scroll view) RectangleF rectVolume = new RectangleF(12, 10, 100, 46); _volumeView = new MPVolumeView(rectVolume); _volumeView.SetMinimumVolumeSliderImage(UIImage.FromBundle("Images/Sliders/slider2").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); _volumeView.SetMaximumVolumeSliderImage(UIImage.FromBundle("Images/Sliders/slider").CreateResizableImage(new UIEdgeInsets(0, 8, 0, 8), UIImageResizingMode.Tile), UIControlState.Normal); _volumeView.SetVolumeThumbImage(UIImage.FromBundle("Images/Sliders/thumbbig"), UIControlState.Normal); viewVolume.AddSubview(_volumeView); graphView.BackgroundColor = GlobalTheme.BackgroundColor; outputMeter.BackgroundColor = GlobalTheme.BackgroundColor; imageViewVolumeLow.Alpha = 0.125f; imageViewVolumeHigh.Alpha = 0.125f; viewEffects.OnScaleViewClicked += () => OnOpenEffects(); if (UserInterfaceIdiomIsPhone) { viewVolume.RemoveFromSuperview(); viewPlayerButtons.RemoveFromSuperview(); viewEffects.RemoveFromSuperview(); scrollViewPlayer.AddSubview(viewEffects); scrollViewPlayer.AddSubview(viewPlayerButtons); scrollViewPlayer.AddSubview(viewVolume); scrollViewPlayer.ContentSize = new SizeF(3 * UIScreen.MainScreen.Bounds.Width, 72); viewEffects.Frame = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, 72); viewPlayerButtons.Frame = new RectangleF(UIScreen.MainScreen.Bounds.Width, 0, UIScreen.MainScreen.Bounds.Width, 72); viewVolume.Frame = new RectangleF(UIScreen.MainScreen.Bounds.Width * 2, 0, UIScreen.MainScreen.Bounds.Width, 72); scrollViewPlayer.ContentOffset = new PointF(UIScreen.MainScreen.Bounds.Width, 0); imageViewVolumeLow.Image = UIImage.FromBundle("Images/Buttons/volume_low"); imageViewVolumeHigh.Image = UIImage.FromBundle("Images/Buttons/volume_high"); } else { imageViewVolumeLow.Image = UIImage.FromBundle("Images/SmallWhiteIcons/volume_low"); imageViewVolumeHigh.Image = UIImage.FromBundle("Images/SmallWhiteIcons/volume_high"); } var navigationManager = Bootstrapper.GetContainer().Resolve<MobileNavigationManager>(); navigationManager.BindPlayerView(MobileNavigationTabType.Playlists, this); base.ViewDidLoad(); }