public async void Record()
        {
            if (IsRecording)
            {
                throw new InvalidOperationException("Recording already in progress!");
            }
            Initialize();
            //await DeleteExistingFile();
            MediaCaptureInitializationSettings settings =
                new MediaCaptureInitializationSettings
            {
                StreamingCaptureMode = StreamingCaptureMode.Audio
            };

            settings.AudioProcessing = Windows.Media.AudioProcessing.Raw;
            _mediaCapture            = new MediaCapture();
            await _mediaCapture.InitializeAsync(settings);

            await _mediaCapture.StartRecordToStreamAsync(
                MediaEncodingProfile.CreateWav(AudioEncodingQuality.Low), _memoryBuffer);

            //MediaEncodingProfile.CreateMp3(AudioEncodingQuality.Auto)
            IsRecording = true;
        }
        private async void btnRecordEnroll_Click(object sender, RoutedEventArgs e)
        {
            txtInfo.Text = "";

            if (lbProfiles.SelectedIndex < 0)
            {
                txtInfo.Text = "Get profiles and select one of them";
                return;
            }

            if (CaptureMedia == null)
            {
                btnVerify.IsEnabled     = false;
                btnRecordEnroll.Content = "Stop record enrollment";

                CaptureMedia = new MediaCapture();
                var captureInitSettings = new MediaCaptureInitializationSettings();
                captureInitSettings.StreamingCaptureMode = StreamingCaptureMode.Audio;
                await CaptureMedia.InitializeAsync(captureInitSettings);

                MediaEncodingProfile encodingProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.High);
                encodingProfile.Audio.ChannelCount = 1;
                encodingProfile.Audio.SampleRate   = 16000;
                AudioStream = new InMemoryRandomAccessStream();
                CaptureMedia.RecordLimitationExceeded += MediaCaptureOnRecordLimitationExceeded;
                CaptureMedia.Failed += MediaCaptureOnFailed;
                await CaptureMedia.StartRecordToStreamAsync(encodingProfile, AudioStream);

                _etimer.Start();
            }
            else
            {
                _etimer.Stop();
                await finishEnrollment();
            }
        }
예제 #3
0
 public async Task StartRecordingAsync()
 {
     await mediaCapture.StartRecordToStreamAsync(mediaProfile, (InMemoryRandomAccessStream)RawWAVStream);
 }