【问题标题】:Windows IoT Raspberry Pi 3 c# Recording AudioWindows IoT Raspberry Pi 3 c# 录制音频
【发布时间】:2017-09-19 08:36:42
【问题描述】:

我正在尝试在运行 Windows 10 IoT 的 Rasp Pi 3 上录制音频。 我正在录制音频以存储在 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;
        }

    }

【问题讨论】:

  • 你的代码的输出是什么,你有什么错误吗?
  • 编译过程中没有错误..但是当我按下记录按钮运行它时..它遇到未处理的异常...
  • 能否将异常输出添加到问题中?
  • 我设置了一个断点.. 它没有通过 await audioCapture.InitializeAsync();

标签: c# audio audio-recording raspberry-pi3 windows-iot-core-10


【解决方案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://docs.microsoft.com/en-us/samples/microsoft/windows-iotcore-samples/webcam-app/

【讨论】:

  • 谢谢你!有用!我能知道它背后的原因是什么吗?
  • 您是否必须添加功能或设置?
  • 我已经添加了这些功能 .. 只是想知道为什么我的 init 进程无法正常工作.. 我是否必须像您的示例中那样设置所有参数?
  • 可能是您没有网络摄像头,如果您没有像答案中那样设置设置,它也会尝试初始化视频...
  • 明白了..这就是为什么它进入一个循环等待相机?
猜你喜欢
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2019-04-04
相关资源
最近更新 更多