UWP MediaCapture初始化失败

时间:2019-11-14 09:55:22

标签: c# wpf uwp voice-recording

我正在开发WPF应用程序,在其中使用Windows.Media.Capture.MediaCapture类记录音频数据。无论是否有参数初始化都可以正常工作

var mediaCapture = new MediaCapture();
await mediaCapture.InitializeAsync();

或者我可以添加要使用的microfone(如果有多个):

var allAudioDevices = await DeviceInformation.FindAllAsync(DeviceClass.AudioCapture);
DeviceInformation microphone = allAudioDevices.FirstOrDefault();

MediaCaptureInitializationSettings mediaInitSettings = new MediaCaptureInitializationSettings {
    AudioDeviceId = microphone.Id,
    StreamingCaptureMode = StreamingCaptureMode.Audio
};

await _mediaCapture.InitializeAsync(mediaInitSettings);

当我将我的应用程序作为UWP应用程序(带有桌面桥)运行时,就会出现问题。作为UWP应用程序,当其调用InitializeAsync()方法时,它总是会引发异常,并显示以下错误消息(详细:)):Element not found.正确找到了麦克风的DeviceInformation对象,因此在MediaCapture的初始化过程中会发生一些事情。

麦克风功能在桥接项目的清单文件中设置。

我在做什么错?我也愿意使用其他方法来录制声音。

1 个答案:

答案 0 :(得分:0)

我发现,如果我在UI线程上运行初始化,则效果很好:

Application.Current.Dispatcher.Invoke(() => {
    await mediaCapture.InitializeAsync();
});