コード例 #1
0
 private void Audio_StateChanged(object sender, EventArgs e)
 {
     if (MuteText != "MUTE" && !recorder.IsRecording)
     {
         recorder.StartRecording();
     }
 }
コード例 #2
0
ファイル: Recorder.cs プロジェクト: andru196/GuideOne_Xamarin
        public async Task StartRecord()
        {
            await _audioRecorderService.StartRecording();

            _audioStream = _audioRecorderService.AudioStreamDetails;
            StartTimer();
        }
コード例 #3
0
        // -------------------------- Audio Tasks --------------------------

        /**
         * Function that uses the Plugin.Audiorecorder Nuget package to record
         * audio and update the AudioRecorderService instance.
         * It also changes the button states and texts at some places.
         **/
        async Task RecordAudio()
        {
            if (!recorder.IsRecording) //Record button clicked
            {
                RecordButton.IsEnabled = false;

                //start recording audio
                var audioRecordTask = await recorder.StartRecording();

                RecordButton.Text      = "Stop Recording";
                RecordButton.IsEnabled = true;

                await audioRecordTask;

                RecordButton.Text = "Record";
            }
            else //Stop button clicked
            {
                RecordButton.IsEnabled = false;

                //stop the recording...
                await recorder.StopRecording();

                RecordButton.IsEnabled = true;
                ToTextButton.IsEnabled = true;
            }
        }
コード例 #4
0
        private void RecordButton_Clicked(object sender, EventArgs e)
        {
            if (recorder == null)
            {
                recorder = new AudioRecorderService()
                {
                    FilePath = recordFilePath,
                    StopRecordingOnSilence    = false,
                    StopRecordingAfterTimeout = true,
                    TotalAudioTimeout         = TimeSpan.FromMinutes(Preferences.Get(AppSettingKeys.RecordTimeOut, 5)),
                };

                recorder.AudioInputReceived += Recorder_AudioInputReceived;
            }

            if (recorder.IsRecording)
            {
                recorder.StopRecording();

                RecordStatusLabel.IsVisible = false;
            }
            else
            {
                RecordButton.Text = AppResources.StopRecord;

                recorder.StartRecording();

                RecordStatusLabel.IsVisible = true;
            }
        }
コード例 #5
0
        public async Task StartRecordAsync()
        {
            IsInRecordingMode = true;

            var filePath = storageFolder.Path + @"\" +
                           DateTime.Now.Year + "-" +
                           DateTime.Now.Month + "-" +
                           DateTime.Now.Day + "_" +
                           DateTime.Now.Hour + "." +
                           DateTime.Now.Minute + "." +
                           DateTime.Now.Second + "." +
                           DateTime.Now.Millisecond + ".wav";

            recorder = new AudioRecorderService
            {
                StopRecordingOnSilence    = true,                    //will stop recording after 2 seconds (default)
                StopRecordingAfterTimeout = true,                    //stop recording after a max timeout (defined below)
                AudioSilenceTimeout       = TimeSpan.FromMilliseconds(Params.SilenceTimeout * 1000),
                SilenceThreshold          = Params.SilenceThreshold, // float between 0 and 1
                TotalAudioTimeout         = TimeSpan.FromSeconds(Params.TimeoutLimit),
                FilePath            = filePath,
                PreferredSampleRate = 16000
            };

            recorder.AudioInputReceived += Recorder_AudioInputReceived;
            //await RecordAudio();
            await recorder.StartRecording();
        }
コード例 #6
0
        private void RecordButton_Clicked(object sender, EventArgs e)
        {
            if (recorder == null)
            {
                recorder = new AudioRecorderService()
                {
                    FilePath = recordFilePath,
                    StopRecordingOnSilence = false
                };

                recorder.AudioInputReceived += Recorder_AudioInputReceived;
            }

            if (recorder.IsRecording)
            {
                recorder.StopRecording();
            }
            else
            {
                recorder.StartRecording();

                RecordButton.Text                = $"{AppResources.Recording}";
                RecordButton.IsEnabled           = false;
                RecordStatusLabel.IsVisible      = true;
                RecordCountProgressBar.Progress  = 0;
                RecordCountProgressBar.IsVisible = true;

                timeTimer.Start();
            }
        }
コード例 #7
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    var checkTimeout = FindViewById <CheckBox> (Resource.Id.checkBoxTimeout);
                    recorder.StopRecordingOnSilence = checkTimeout.Checked;

                    recordButton.Enabled = false;

                    await recorder.StartRecording();

                    recordButton.Text    = "Stop";
                    recordButton.Enabled = true;
                }
                else
                {
                    recordButton.Enabled = false;

                    await recorder.StopRecording();

                    recordButton.Text    = "Record";
                    recordButton.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #8
0
        private async void RecordBtn_Click(object sender, RoutedEventArgs e)
        {
            if (!recorder.IsRecording)
            {
                playBtn.IsEnabled = false;
                recorder.StopRecordingOnSilence = checkTimeout.IsChecked.Value;

                //the returned Task here will complete once recording is finished
                var recordTask = await recorder.StartRecording();

                recordBtn.Icon  = new SymbolIcon(Symbol.Stop);
                recordBtn.Label = "Stop";

                var audioFile = await recordTask;

                //audioFile will contain the path to the recorded audio file

                recordBtn.Icon    = new SymbolIcon(Symbol.Microphone);
                recordBtn.Label   = "Record";
                playBtn.IsEnabled = !string.IsNullOrEmpty(audioFile);
            }
            else
            {
                await recorder.StopRecording();

                recordBtn.Icon  = new SymbolIcon(Symbol.Microphone);
                recordBtn.Label = "Record";
            }
        }
コード例 #9
0
        private async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    playRecordingButton.IsEnabled = false;

                    var audiorecordTask = await recorder.StartRecording();

                    startListeningButton.Text = "Stop Listening";

                    audioFile = await audiorecordTask;
                    startListeningButton.Text     = "Start Listening";
                    playRecordingButton.IsEnabled = true;
                    listenlabel.Text = audioFile;
                    //player.Play(audioFile);
                    aplayer.Load(audioFile);
                    aplayer.Play();
                }
                else
                {
                    startListeningButton.IsEnabled = false;
                    await recorder.StopRecording();

                    player.Play(audioFile);
                    startListeningButton.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert("Error occured in recording audio.", ex.Message, "OK");
            }
        }
コード例 #10
0
        //record AUdio
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    var recordTask = await recorder.StartRecording();

                    destinationBtn.Text = "Stop Recording";
                    await recordTask;
                }
                else
                {
                    await recorder.StopRecording();

                    destinationBtn.Text = "My Destination";
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert("Error", ex.ToString(), "OK");

                await CrossTextToSpeech.Current.Speak("An Error Occured, Please Try again or contact team Achievers ");
            }
        }
コード例 #11
0
        public async Task <string> RecordAudio()
        {
            string audioFile = null;
            var    _recorder = new AudioRecorderService
            {
                StopRecordingAfterTimeout = true,
                TotalAudioTimeout         = TimeSpan.FromSeconds(10),
                AudioSilenceTimeout       = TimeSpan.FromSeconds(2)
            };

            try
            {
                if (!_recorder.IsRecording)
                {
                    var recordTask = await _recorder.StartRecording();

                    audioFile = await recordTask;
                }
                return(audioFile);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
コード例 #12
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    recorder.StopRecordingOnSilence = TimeoutSwitch.On;

                    RecordButton.Enabled = false;

                    await recorder.StartRecording();

                    RecordButton.SetTitle("Stop", UIControlState.Normal);
                    RecordButton.Enabled = true;
                }
                else
                {
                    RecordButton.Enabled = false;

                    await recorder.StopRecording();

                    RecordButton.SetTitle("Record", UIControlState.Normal);
                    RecordButton.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #13
0
 private async Task StartRecording()
 {
     if (!_audioRecorder.IsRecording)
     {
         await await _audioRecorder.StartRecording();
     }
 }
コード例 #14
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    RecordButton.IsEnabled = false;

                    var audioRecordTask = await recorder.StartRecording();

                    RecordButton.Text      = "Stop Recording";
                    RecordButton.IsEnabled = true;

                    var recordResult = await audioRecordTask;

                    RecordButton.Text = "Record";
                }
                else
                {
                    RecordButton.IsEnabled = false;
                    await recorder.StopRecording();

                    RecordButton.IsEnabled = true;
                }
            }
            catch (Exception e)
            {
                Application.Current.MainPage.DisplayAlert("Error", e.Message, "OK");
            }
        }
コード例 #15
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    var audioTask = await recorder.StartRecording();

                    record.Text = "Stop";
                    await audioTask;
                    record.Text = "Start";
                }
                else
                {
                    record.Text = "Stop";
                    await recorder.StopRecording();

                    record.Text = "Start";
                }
            }
            catch (Exception ex)
            {
                await DisplayAlert("Error", "Someting went wrong, " + ex.ToString(), "Ok");
            }
        }
コード例 #16
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)                 //Record button clicked
                {
                    //start recording audio
                    var audioRecordTask = await recorder.StartRecording();

                    RecordButton.Text      = "Stop Recording";
                    RecordButton.IsEnabled = true;



                    await audioRecordTask;

                    RecordButton.Text    = "Record";
                    PlayButton.IsEnabled = true;
                }
                else                 //Stop button clicked
                {
                    RecordButton.IsEnabled = false;

                    //stop the recording
                    await recorder.StopRecording();

                    RecordButton.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #17
0
        public async Task <string> StartRecord()
        {
            try
            {
                var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Microphone);

                if (status != PermissionStatus.Granted)
                {
                    status = (await CrossPermissions.Current.RequestPermissionsAsync(Permission.Microphone))[Permission.Microphone];
                }

                if (status == PermissionStatus.Granted)
                {
                    if (recorder.IsRecording)
                    {
                        await recorder.StopRecording();
                    }

                    await recorder.StartRecording();
                }
            }
            catch (Exception ex)
            {
                await Shell.Current.DisplayAlert("Message", ex.Message, "OK");
            }

            return("ok");
        }
コード例 #18
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    InitialScreen(true);
                    CurrentTime    = DateTime.Now;
                    timer          = new Timer();
                    timer.Interval = 1000;
                    timer.Elapsed -= Timer_Elapsed;
                    timer.Elapsed += Timer_Elapsed;
                    timer.Enabled  = true;
                    await recorder.StartRecording();
                }
                else
                {
                    btRecording.Text = @"Start Recording";
                    InitialScreen(false);
                    await recorder.StopRecording();

                    this.Dismiss();
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #19
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording)
                {
                    updateUI(false);

                    var audioRecordTask = await recorder.StartRecording();

                    updateUI(true, "Detener");

                    var recognitionMode = (RecognitionMode)Enum.Parse(typeof(RecognitionMode), 0.ToString());
                    var profanityMode   = (ProfanityMode)Enum.Parse(typeof(ProfanityMode), 0.ToString ());
                    outputMode = (OutputMode)Enum.Parse(typeof(OutputMode), 0.ToString ());


                    bingSpeechClient.RecognitionMode = recognitionMode;
                    bingSpeechClient.ProfanityMode   = profanityMode;


                    var audioFile = await audioRecordTask;

                    updateUI(true, "Grabar", true);
                    if (audioFile != null)
                    {
                        var resultText = await SpeechToText(audioFile);

                        ResultsLabel.Text = resultText ?? "No hay Resultados!";
                    }

                    updateUI(true, false);
                }
                else                 //Stop button clicked
                {
                    updateUI(false, true);

                    //stop the recording...
                    await recorder.StopRecording();
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #20
0
        async void Record_Clicked(object sender, EventArgs e)
        {
            seconds++;
            //nome = Path.GetRandomFileName() + ".wav";
            //string nomeArquivo = Path.Combine(App.PastaDiretorio, $"{nome}");

            //File.Create(nomeArquivo);
            //recorder.FilePath = nomeArquivo;

            if (!recorder.IsRecording)
            {
                seconds        = 0;
                minutes        = 0;
                isTimerRunning = true;
                Device.StartTimer(TimeSpan.FromSeconds(1), () => {
                    if (seconds.ToString().Length == 1)
                    {
                        lblSeconds.Text = "0" + seconds.ToString();
                    }
                    else
                    {
                        lblSeconds.Text = seconds.ToString();
                    }
                    if (seconds == 60)
                    {
                        minutes++;
                        seconds = 0;

                        if (minutes.ToString().Length == 1)
                        {
                            lblMinutes.Text = "0" + minutes.ToString();
                        }
                        else
                        {
                            lblMinutes.Text = minutes.ToString();
                        }

                        lblSeconds.Text = "00";
                    }
                    return(isTimerRunning);
                });

                //
                recorder.StopRecordingOnSilence = IsSilence.IsToggled;
                var audioRecordTask = await recorder.StartRecording();


                //label_inicial.Text = nomeArquivo;



                bntRecord.IsEnabled       = false;
                bntRecord.BackgroundColor = Color.Silver;
                bntPlay.IsEnabled         = true;
                bntPlay.BackgroundColor   = Color.Silver;
                bntStop.IsEnabled         = true;
                bntStop.BackgroundColor   = Color.FromHex("#7cbb45");
            }
        }
コード例 #21
0
ファイル: AudioItemPage.xaml.cs プロジェクト: damkow1981/Wave
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording) //Record button clicked
                {
                    recorder.StopRecordingOnSilence = TimeoutSwitch.IsToggled;

                    RecordButton.IsEnabled = false;
                    PlayButton.IsEnabled   = false;
                    SaveButton.IsEnabled   = false;

                    //start recording audio
                    var audioRecordTask = await recorder.StartRecording();

                    RecordButton.Text      = StartPage.lp.StopRecording;
                    RecordButton.IsEnabled = true;

                    await audioRecordTask;

                    RecordButton.Text    = StartPage.lp.Record;
                    SaveButton.IsEnabled = true;
                }
                else //Stop button clicked
                {
                    RecordButton.IsEnabled = false;

                    //stop the recording...
                    await recorder.StopRecording();

                    RecordButton.IsEnabled = true;
                }

                //wczytuje plik audio
                if (recorder.GetAudioFilePath() != null)
                {
                    string filePath = recorder.GetAudioFilePath();
                    itemData.AudioFile = File.ReadAllBytes(filePath);

                    PlayButton.IsEnabled = true;
                    audioRecorded        = true;

                    paidAlready = false;
                }
                else
                {
                    audioRecorded = false;
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #22
0
ファイル: Todo.xaml.cs プロジェクト: eesteban1/GPS
 private async void PlayStop_Clicked(object sender, EventArgs e)
 {
     if (!record.IsRecording)
     {
         await record.StartRecording();
     }
     else if (record.IsRecording)
     {
         await record.StopRecording();
     }
 }
コード例 #23
0
        async void RecordBtn_Pressed(object sender, EventArgs e)
        {
            if (FileInfoLayout.IsVisible) // If we start recording, record sound will overwrite the eventual loaded file
            {
                FileInfoLayout.IsVisible = false;
            }

            await _recorder.StartRecording();

            Edit_InfoLabel(true, "Now Recording...");
        }
コード例 #24
0
        public async void RecordAsync_Click(object sender, EventArgs e)
        {
            if (!audioRecorder.IsRecording)
            {
                Debug.WriteLine("Record button clicked");
                await audioRecorder.StartRecording();

                Debug.WriteLine(audioRecorder.AudioStreamDetails.SampleRate);
                Debug.WriteLine(audioRecorder.AudioStreamDetails.ChannelCount);
                Debug.WriteLine(audioRecorder.AudioStreamDetails.BitsPerSample);
                await Task.Run(() => AutoCorrelationFunction.AnalyseAudio(audioRecorder));
            }
        }
コード例 #25
0
        public async Task <string> StartRecordingAsync()
        {
            if (!recorder.IsRecording)
            {
                // Start recording audio.
                var audioRecordTask = await recorder.StartRecording();

                var audioFile = await audioRecordTask;
                return(audioFile);
            }

            return(null);
        }
コード例 #26
0
        async void Record_Clicked(object sender, EventArgs e)
        {
            if (!recorder.IsRecording)
            {
                seconds        = 0;
                minutes        = 0;
                isTimerRunning = true;
                Device.StartTimer(TimeSpan.FromSeconds(1), () => {
                    seconds++;

                    if (seconds.ToString().Length == 1)
                    {
                        lblSeconds.Text = "0" + seconds.ToString();
                    }
                    else
                    {
                        lblSeconds.Text = seconds.ToString();
                    }
                    if (seconds == 60)
                    {
                        minutes++;
                        seconds = 0;

                        if (minutes.ToString().Length == 1)
                        {
                            lblMinutes.Text = "0" + minutes.ToString();
                        }
                        else
                        {
                            lblMinutes.Text = minutes.ToString();
                        }

                        lblSeconds.Text = "00";
                    }
                    return(isTimerRunning);
                });

                //
                recorder.StopRecordingOnSilence = IsSilence.IsToggled;
                var audioRecordTask = await recorder.StartRecording();

                bntRecord.IsEnabled       = false;
                bntRecord.BackgroundColor = Color.Silver;
                bntPlay.IsEnabled         = false;
                bntPlay.BackgroundColor   = Color.Silver;
                bntStop.IsEnabled         = true;
                bntStop.BackgroundColor   = Color.FromHex("#7cbb45");

                await audioRecordTask;
            }
        }
コード例 #27
0
        //protected override void OnAppearing()
        //{
        //    base.OnAppearing();
        //    MessagingCenter.Subscribe<Dictionary<string,dynamic>, string>(vals, "NotifyMsg", (sender, arg) =>
        //    {
        //        string retarg = arg;
        //        List<CRMLead> crmLeadData = Controller.InstanceCreation().crmLeadData();
        //    });
        //}


        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording) //Record button clicked
                {
                    var currentpage = new LoadingAlert();
                    await PopupNavigation.PushAsync(currentpage);

                    recorder.StopRecordingOnSilence = false;
                    //  recorder.AudioStreamDetails.SampleRate  = 0xA0000;
                    //    recorder.AudioStreamDetails.BitsPerSample =

                    await PopupNavigation.PopAsync();

                    // recorder.StopRecordingOnSilence = TimeoutSwitch.IsToggled;

                    //RecordButton.IsEnabled = false;
                    //PlayButton.IsEnabled = false;

                    //start recording audio

                    //recorder.IsRecording = true;
                    var audioRecordTask = await recorder.StartRecording();

                    //RecordButton.Text = "Stop Recording";
                    //RecordButton.IsEnabled = true;

                    //  await audioRecordTask;

                    //RecordButton.Text = "Record";
                    //PlayButton.IsEnabled = true;
                }
                else //Stop button clicked
                {
                    // RecordButton.IsEnabled = false;

                    //stop the recording...
                    await recorder.StopRecording();

                    // RecordButton.IsEnabled = true;
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                throw ex;
            }
        }
コード例 #28
0
 private async Task ToggleRecordingAsync()
 {
     if (IsRecording)
     {
         IsRecording = false;
         if (_recorder.IsRecording)
         {
             await _recorder.StopRecording();
         }
     }
     else
     {
         IsRecording = true;
         await _recorder.StartRecording();
     }
 }
コード例 #29
0
 async Task RecordAudio()
 {
     try
     {
         if (!audioRecorder.IsRecording)
         {
             await audioRecorder.StartRecording();
         }
         else
         {
             await audioRecorder.StopRecording();
         }
     }
     catch (Exception ex)
     {
     }
 }
コード例 #30
0
        async Task RecordAudio()
        {
            try
            {
                if (!recorder.IsRecording) //Record button clicked
                {
                    recorder.StopRecordingOnSilence = TimeoutSwitch.IsToggled;

                    RecordButton.IsEnabled = false;
                    PlayButton.IsEnabled   = false;

                    //start recording audio
                    var audioRecordTask = await recorder.StartRecording();

                    RecordButton.Text      = "Stop Recording";
                    RecordButton.IsEnabled = true;

                    await audioRecordTask;

                    RecordButton.Text    = "Record";
                    PlayButton.IsEnabled = true;
                }
                else //Stop button clicked
                {
                    RecordButton.IsEnabled = false;

                    //stop the recording...
                    await recorder.StopRecording();

                    RecordButton.IsEnabled = true;

                    var filePath = recorder.GetAudioFilePath();

                    if (filePath != null)
                    {
                        InsertAttachDB(filePath, filePath);
                    }
                }
            }
            catch (Exception ex)
            {
                //blow up the app!
                // throw ex;
            }
        }