Как использовать два CameraCaptureUI одновременно (UWP / C ++) - PullRequest
0 голосов
/ 07 июня 2018

Я работаю над универсальным приложением 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 для обработки видео.

Я новичок в параллелизме, есть ли способ (чем проще, тем лучше)добиться двух записей одновременно?

1 Ответ

0 голосов
/ 08 июня 2018

В приложении UWP мы можем захватывать фотографии и видео, используя класс MediaCapture , который обеспечивает функциональность для захвата фотографий, аудио и видео с устройства захвата.См. Тему Базовая запись фото, видео и аудио с помощью MediaCapture .

. Мы можем инициализировать несколько MediaCapture экземпляров, а затем читать кадр с помощью MediaFrameReader Учебный класс.см. тему Обнаружение и выбор возможностей камеры с профилями камеры и Обработка медиакадров с помощью MediaFrameReader , а также ознакомление с официальным примером CameraFrames .

Кроме того, есть аналогичная тема о захвате нескольких камер UWP, вы также можете сослаться на нее:

Обработка захвата нескольких камер UWP

...