Windows IoT Raspberry Pi 3 C# Запись звука

Я пытаюсь записать звук на моем Rasp Pi 3 под управлением Windows 10 IoT. Я записываю аудио для хранения на USB-накопителе. Может кто-нибудь помочь посоветовать, что я сделал не так. Заранее спасибо.

 private async void RecordBtn_Checked(object sender, RoutedEventArgs e)
    {
        //init mediacapture
        audioCapture = new MediaCapture();
        await audioCapture.InitializeAsync();

        StorageFolder externalDevices = KnownFolders.RemovableDevices;
        IReadOnlyList<StorageFolder> externalDrives = await externalDevices.GetFoldersAsync();
        StorageFolder usbStorage = externalDrives[0];

        var recordFolder = await usbStorage.CreateFolderAsync("Recording");

        StorageFile recordFile = await recordFolder.CreateFileAsync("record.mp3", Windows.Storage.CreationCollisionOption.GenerateUniqueName);

        audioRecording = await audioCapture.PrepareLowLagRecordToStorageFileAsync(MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High), recordFile);

        await audioRecording.StartAsync();

        isRecording = true;
        RecordStatus.Text = "Recording ... ";

        //PlayRec.IsEnabled = StopRec.IsEnabled = false;


    }

 private async void RecordBtn_Unchecked(object sender, RoutedEventArgs e)
    {
        if (isRecording)
        {
            await audioRecording.StopAsync();
            isRecording = false;

            await audioRecording.FinishAsync();
            RecordStatus.Text = "Recording stopped.";

            //PlayRec.IsEnabled = StopRec.IsEnabled = true;
        }

    }

1 ответ

Решение

Если вы хотите захватывать только аудио, попробуйте следующее:

audioCapture = new MediaCapture();  
var settings = new Windows.Media.Capture.MediaCaptureInitializationSettings();  
settings.StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.Audio;  
settings.MediaCategory = Windows.Media.Capture.MediaCategory.Other;  
settings.AudioProcessing = Windows.Media.AudioProcessing.Default;  
await audioCapture.InitializeAsync(settings);  

Также убедитесь, что вы установили правильные возможности в своем файле Package.appxmanifest:

<Capabilities>      
   <DeviceCapability Name="microphone" />  
</Capabilities>  

Проверьте это руководство, у него есть несколько хороших примеров:

https://developer.microsoft.com/en-us/windows/iot/samples/webcamapp

Другие вопросы по тегам