我正在开发一个WPF应用程序,在该应用程序中,我使用Windows.Media.Capture.MediaCapture类记录音频数据。如果我用或不带参数初始化,它就能工作:
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初始化过程中发生了一些事情。
麦克风功能在桥项目的清单文件中设置。
我做错了什么?我也愿意用其他的方法来记录这个声音。
发布于 2019-11-18 11:08:47
我发现如果我在UI线程上运行初始化,它会运行得很好:
await Application.Current.Dispatcher.InvokeAsync(async () => {
await mediaCapture.InitializeAsync();
});https://stackoverflow.com/questions/58853904
复制相似问题