Я работаю над универсальным приложением Windows Platform (UWP), в котором я использую C ++ в качестве основного языка. Я хочу читать с двух камер одновременно. Одна камера принадлежит камере Kinect RGB, а другая — камере Kinect Depth. До сих пор мне удалось прочитать только один, используя этот кусок кода:
void SDKTemplate::Scenario4_ReproVideo::Grabar_Click(Platform::Object^
sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
CameraCaptureUI^ dialog = ref new CameraCaptureUI();
dialog->VideoSettings->Format = CameraCaptureUIVideoFormat::Mp4;
Windows::Foundation::Collections::IPropertySet^ appSettings = ApplicationData::Current->LocalSettings->Values;
concurrency::task<StorageFile^>(dialog->CaptureFileAsync(CameraCaptureUIMode::Video)).then([this](StorageFile^ file) {
if (file != nullptr) {
concurrency::task<Streams::IRandomAccessStream^> (file->OpenAsync(FileAccessMode::Read)).then([this] (Streams::IRandomAccessStream^ stream){
CapturedVideo->SetSource(stream, "video/mp4");
logger->Text = "recording";
});
Windows::Foundation::Collections::IPropertySet^ appSettings = ApplicationData::Current->LocalSettings->Values;
appSettings->Insert("CapturedVideo", PropertyValue::CreateString(file->Path));
}
else {
logger->Text = "Something went wrong or was cancelled";
}
});
}
Делая это, я могу надежно записывать с одной из камер. Моя проблема в том, что мне нужно записывать с обеих камер одновременно, так как мне нужны глубина и RGB для обработки видео.
Я новичок в параллелизме, есть ли способ (чем проще, тем лучше) добиться двух записей одновременно?
В приложении UWP мы можем снимать фотографии и видео, используя MediaCapture класс, который обеспечивает функциональность для захвата фотографий, аудио и видео с устройства захвата. Смотреть тему Основные фото, видео и аудио захвата с MediaCapture.
Мы можем инициализировать несколько MediaCapture экземпляры затем прочитать кадр с помощью MediaFrameReader Учебный класс. увидеть тему Откройте для себя и выберите возможности камеры с профилями камеры а также Обработка медиакадров с помощью MediaFrameReader а также заглянуть в официальный образец CameraFrames.
Кроме того, есть аналогичная тема о захвате нескольких камер UWP, вы также можете сослаться на нее:
Других решений пока нет …