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();
});
我正在开发一个 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();
});