UWP MediaCapture 初始化失败

UWP MediaCapture initialization fails

我正在开发一个 WPF 应用程序,我在其中使用 Windows.Media.Capture.MediaCapture class 录制音频数据。如果我使用或不使用参数进行初始化,它都可以工作:

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

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

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.

的初始化过程中发生了一些事情

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

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

我想通了,如果我 运行 在 UI 线程上进行初始化,效果很好:

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