/** ピッカーキャンセル時のコールバックメソッド */ public override void MediaPickerDidCancel(MPMediaPickerController sender) { System.Diagnostics.Debug.WriteLine("iOS MediaPickerDidCancel"); /** ピッカーを閉じる */ UIApplication.SharedApplication.KeyWindow.RootViewController.DismissViewController(true, null); }
public override void MediaItemsPicked(MPMediaPickerController sender, MPMediaItemCollection mediaItemCollection) { var item = mediaItemCollection.RepresentativeItem; picker.DismissModalViewController(false); _callback?.Invoke(item?.AssetURL); }
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); }
/** ピッカー曲選択時のコールバックメソッド */ 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); }
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; }
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); }
/** 曲選択時のコールバックメソッド */ 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); }
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); }
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); }); }
public override void MediaPickerDidCancel(MPMediaPickerController sender) { _viewController.DismissModalViewController(true); }
public AudioPickerController() { picker = new MPMediaPickerController(MPMediaType.Music); picker.Delegate = this; picker.AllowsPickingMultipleItems = false; }