Example #1
0
        /**	ピッカーキャンセル時のコールバックメソッド	*/
        public override void MediaPickerDidCancel(MPMediaPickerController sender)
        {
            System.Diagnostics.Debug.WriteLine("iOS MediaPickerDidCancel");

            /**	ピッカーを閉じる	*/
            UIApplication.SharedApplication.KeyWindow.RootViewController.DismissViewController(true, null);
        }
Example #2
0
        public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
        {
            var item = mediaItemCollection.RepresentativeItem;

            picker.DismissModalViewController(false);
            _callback?.Invoke(item?.AssetURL);
        }
Example #3
0
        public async Task <List <AttachmentMediaFile> > PickAudioAsync()
        {
            _audioPickedTask = new TaskCompletionSource <List <AttachmentMediaFile> >();

            var picker = new MPMediaPickerController();

            ShowViewController(picker);

            picker.ItemsPicked += OnAudioPicked;
            picker.DidCancel   += OnCancel;

            var media = await _audioPickedTask.Task;

            return(media);
        }
Example #4
0
        /**	ピッカー曲選択時のコールバックメソッド	*/
        public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
        {
            System.Diagnostics.Debug.WriteLine("iOS MediaItemsPicked");

            /**	選択した曲情報をplayerに設定	*/
            this.player.SetQueue(mediaItemCollection);

            /**	再生	*/
            player.Play();

            var mediaItem = mediaItemCollection.Items[0];

            /**	ピッカーを閉じる	*/
            UIApplication.SharedApplication.KeyWindow.RootViewController.DismissViewController(true, null);
        }
Example #5
0
            public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
            {
                _viewController._musicPlayer.SetQueue(mediaItemCollection);
                _viewController.DismissModalViewControllerAnimated(true);

                MPMediaItem mediaItem = mediaItemCollection.Items[0];

                //see MPMediaItem.h for various string property names (search for MPMediaItem.h in Mac Spotlight)

                string artist = mediaItem.ValueForProperty("artist").ToString();
                string title  = mediaItem.ValueForProperty("title").ToString();

                _viewController.artistLabel.Text = artist;
                _viewController.titleLabel.Text  = title;
            }
 public override void MediaItemsPicked (MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
 {
     _viewController._musicPlayer.SetQueue (mediaItemCollection);
     _viewController.DismissModalViewControllerAnimated (true);
     
     MPMediaItem mediaItem = mediaItemCollection.Items[0];
     
     //see MPMediaItem.h for various string property names (search for MPMediaItem.h in Mac Spotlight)
     
     string artist = mediaItem.ValueForProperty ("artist").ToString ();
     string title = mediaItem.ValueForProperty ("title").ToString ();
     
     _viewController.artistLabel.Text = artist;
     _viewController.titleLabel.Text = title;
 }
Example #7
0
            public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
            {
                var items = mediaItemCollection.Items;

                var assetUrl = items[0].AssetURL;

                //NSData data = NSData.FromUrl(assetUrl);


                //NSUrl soundFileURL = NSUrl.CreateFileUrl(@"%@/memo.mp3", assetUrl);
                ////[NSURL fileURLWithPathNSString stringWithFormat: @"%@/memo.m4a", documentsDirectory]]; ;
                //NSData myData = NSData.FromUrl(soundFileURL);
                GetAssetFromUrl(assetUrl);
                _viewController.DismissModalViewController(true);
            }
Example #8
0
        /**	曲選択時のコールバックメソッド	*/
        public void OnSelect()
        {
            System.Diagnostics.Debug.WriteLine("iOS OnSelect");

            /** ピッカーのインスタンスを作成    */
            var picker = new MPMediaPickerController();

            /**	ピッカーのデリゲートを設定	*/
            picker.Delegate = this;

            /**	ピッカーの複数選択を可にする	*/
            picker.AllowsPickingMultipleItems = true;

            /**	ピッカーを表示	*/
            UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(picker, true, null);
        }
Example #9
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _musicPlayer        = new MPMusicPlayerController();
            _musicPlayer.Volume = volumeSlider.Value;
            _mediaController    = new MPMediaPickerController(MPMediaType.MPMediaTypeMusic);
            _mediaController.AllowsPickingMultipleItems = false;
            _mpDelegate = new MediaPickerDelegate(this);
            _mediaController.Delegate = _mpDelegate;

            volumeSlider.ValueChanged += delegate { _musicPlayer.Volume = volumeSlider.Value; };

            open.Clicked += (o, e) => { this.PresentModalViewController(_mediaController, true); };

            play.Clicked += (o, e) => { _musicPlayer.Play(); };

            pause.Clicked += (o, e) => { _musicPlayer.Pause(); };

            stop.Clicked += (o, e) => { _musicPlayer.Stop(); };
        }
 public override void ViewDidLoad ()
 {
     base.ViewDidLoad ();
     
     _musicPlayer = new MPMusicPlayerController ();
     _musicPlayer.Volume = volumeSlider.Value;
     _mediaController = new MPMediaPickerController (MPMediaType.MPMediaTypeMusic);
     _mediaController.AllowsPickingMultipleItems = false;
     _mpDelegate = new MediaPickerDelegate (this);
     _mediaController.Delegate = _mpDelegate;
     
     volumeSlider.ValueChanged += delegate { _musicPlayer.Volume = volumeSlider.Value; };
     
     open.Clicked += (o, e) => { this.PresentModalViewController (_mediaController, true); };
     
     play.Clicked += (o, e) => { _musicPlayer.Play (); };
     
     pause.Clicked += (o, e) => { _musicPlayer.Pause (); };
     
     stop.Clicked += (o, e) => { _musicPlayer.Stop (); };
 }
 public override void MediaPickerDidCancel(MPMediaPickerController sender)
 {
     _playBackScreen.DismissViewController (true, null);
 }
            public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection)
            {
                _playBackScreen._musicPlayer.SetQueue (mediaItemCollection);
                _playBackScreen.DismissViewController (true, null);

                MPMediaItem mediaItem = mediaItemCollection.Items [0];

                try{
                    _playBackScreen.artistLbl.Text = mediaItem.AlbumArtist.ToString();
                }
                catch{
                    _playBackScreen.artistLbl.Text = "No artisit";
                }
                _playBackScreen.titleLbl.Text = mediaItem.Title;
                _playBackScreen.playPauseBtn.Enabled = true;
                _playBackScreen.positionSkipBtn.Enabled = true;
                double fileLengthRaw = mediaItem.PlaybackDuration;
                int fileLengthInt = Convert.ToInt32 (fileLengthRaw);
                string fileLengthDisplay = string.Format ("{0:##}:{1:00}:{2:00}", fileLengthInt/ 3600, (fileLengthInt / 60) % 60, fileLengthInt % 60);
                _playBackScreen.lengthLbl.Text = fileLengthDisplay;
                _playBackScreen.positionSld.MaxValue = (float)(fileLengthRaw);
            }
 public override void MediaPickerDidCancel (MPMediaPickerController sender)
 {
     _viewController.DismissModalViewControllerAnimated (true);
 }
Example #14
0
 public override void MediaPickerDidCancel(MPMediaPickerController sender)
 {
     picker.DismissModalViewController(false);
     _callback?.Invoke(null);
 }
        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);
            });
        }
Example #16
0
 public override void MediaPickerDidCancel(MPMediaPickerController sender)
 {
     _viewController.DismissModalViewController(true);
 }
Example #17
0
 public AudioPickerController()
 {
     picker          = new MPMediaPickerController(MPMediaType.Music);
     picker.Delegate = this;
     picker.AllowsPickingMultipleItems = false;
 }