private void IsAudioAlertEnabled_Click(object sender, RoutedEventArgs e) { if (IsEmailAlertsEnabled.IsChecked == true && SmtpServer.Text.Length == 0) { AudioFilePath.Focus(); } }
public override void ViewDidLoad() { base.ViewDidLoad(); View.BackgroundColor = UIColor.White; var image = new UIImageView(); View.AddSubview(image); image.Image = UIImage.FromBundle("microphone.png"); var recordingStatusLabel = new UILabel { Text = "", TextColor = Constants.MainColor, }; View.AddSubview(recordingStatusLabel); var lengthOfRecordingLabel = new UILabel { Text = "", TextColor = Constants.MainColor, }; View.AddSubview(lengthOfRecordingLabel); var startRecordingButton = new UIButton { }; View.AddSubview(startRecordingButton); startRecordingButton.SetTitle("Start", UIControlState.Normal); startRecordingButton.SetTitleColor(Constants.MainColor, UIControlState.Normal); var stopRecordingButton = new UIButton { }; View.AddSubview(stopRecordingButton); stopRecordingButton.SetTitle("Stop", UIControlState.Normal); stopRecordingButton.SetTitleColor(Constants.MainColor, UIControlState.Normal); var playRecordedSoundButton = new UIButton { }; View.AddSubview(playRecordedSoundButton); playRecordedSoundButton.SetTitle("Play", UIControlState.Normal); playRecordedSoundButton.SetTitleColor(Constants.MainColor, UIControlState.Normal); // start recording wireup startRecordingButton.TouchUpInside += (sender, e) => { AudioSession.Category = AudioSessionCategory.RecordAudio; AudioSession.SetActive(true); if (!PrepareAudioRecording()) { recordingStatusLabel.Text = "Error preparing"; return; } if (!Recorder.Record()) { recordingStatusLabel.Text = "Error recording"; return; } Stopwatch = new Stopwatch(); Stopwatch.Start(); lengthOfRecordingLabel.Text = ""; recordingStatusLabel.Text = "Recording"; startRecordingButton.Enabled = false; stopRecordingButton.Enabled = true; }; // stop recording wireup stopRecordingButton.TouchUpInside += (sender, e) => { Recorder.Stop(); lengthOfRecordingLabel.Text = string.Format("{0:hh\\:mm\\:ss}", Stopwatch.Elapsed); Stopwatch.Stop(); recordingStatusLabel.Text = ""; startRecordingButton.Enabled = true; stopRecordingButton.Enabled = false; }; Observer = NSNotificationCenter.DefaultCenter.AddObserver(AVPlayerItem.DidPlayToEndTimeNotification, delegate(NSNotification n) { Player.Dispose(); Player = null; }); // play recorded sound wireup playRecordedSoundButton.TouchUpInside += (sender, e) => { try { Console.WriteLine("Playing Back Recording " + AudioFilePath.ToString()); // The following line prevents the audio from stopping // when the device autolocks. will also make sure that it plays, even // if the device is in mute AudioSession.Category = AudioSessionCategory.MediaPlayback; Player = new AVPlayer(AudioFilePath); Player.Play(); } catch (Exception ex) { Console.WriteLine("There was a problem playing back audio: "); Console.WriteLine(ex.Message); } }; #region Layout var topPad = (float)NavigationController.NavigationBar.Frame.Size.Height + 40f; View.ConstrainLayout(() => image.Frame.Top == View.Frame.Top + topPad && image.Frame.GetCenterX() == View.Frame.GetCenterX() && image.Frame.Height == 100f && image.Frame.Width == 100f && startRecordingButton.Frame.Top == image.Frame.Bottom + 30f && startRecordingButton.Frame.Left == View.Frame.Left + 30f && startRecordingButton.Frame.Height == Constants.ControlsHeight && startRecordingButton.Frame.Width == 100f && recordingStatusLabel.Frame.Top == image.Frame.Bottom + 30f && recordingStatusLabel.Frame.Left == startRecordingButton.Frame.Right + 30f && recordingStatusLabel.Frame.Height == Constants.ControlsHeight && recordingStatusLabel.Frame.Width == 100f && stopRecordingButton.Frame.Top == startRecordingButton.Frame.Bottom + 30f && stopRecordingButton.Frame.Left == View.Frame.Left + 30f && stopRecordingButton.Frame.Height == Constants.ControlsHeight && stopRecordingButton.Frame.Width == 100f && lengthOfRecordingLabel.Frame.Top == startRecordingButton.Frame.Bottom + 30f && lengthOfRecordingLabel.Frame.Left == stopRecordingButton.Frame.Right + 30f && lengthOfRecordingLabel.Frame.Height == Constants.ControlsHeight && lengthOfRecordingLabel.Frame.Width == 100f && playRecordedSoundButton.Frame.Top == stopRecordingButton.Frame.Bottom + 30f && playRecordedSoundButton.Frame.Left == View.Frame.Left + 30f && playRecordedSoundButton.Frame.Height == Constants.ControlsHeight && playRecordedSoundButton.Frame.Width == 100f ); #endregion }