1

MediaCapture クラスを使用して、複数のカメラ デバイスのプレビューを表示できるようにしたいと考えています。現在、デバイス ID を含む MediaCaptureInitializationSettings オブジェクトで MediaCapture を初期化しています。設定オブジェクトは VideoDeviceId を 1 つしか受け取ることができないため、同じ MediaCapture オブジェクトに対して複数のビデオ ソースを設定することはできません。私が試みたもう 1 つのことは、デバイスごとに 1 つずつ、いくつかの MediaCapture オブジェクトを作成することでした。ただし、最後に初期化されたデバイスがデバイス アクセスを取得したように見えるため、それぞれが異なるデバイスに関連付けられている複数のメディア デバイスがある場合でも、デバイスの 1 つのビデオのみが次のように表示されます。プレビュー。

以下にコードを示しますので、理解を深めることができます。

async private void PreviewDevice(string deviceId)
{
    var mediaCapture = new MediaCapture();
    var mediaCaptureSettings = new MediaCaptureInitializationSettings
    {
        VideoDeviceId = deviceId
    };
    await mediaCapture.InitializeAsync(mediaCaptureSettings);
    var previewElement = new CaptureElement
    {
        Source = mediaCapture
    };
    CamerasDisplayGrid.Children.Add(previewElement);
    await mediaCapture.StartPreviewAsync();
}

私が達成したいのは、画面内の複数のカメラのプレビューを同時に取得することです。

ご意見をお聞かせください。前もって感謝します

4

2 に答える 2

1

このリンクが役立つかもしれません:http ://social.msdn.microsoft.com/Forums/sr-Cyrl-CS/winappswithcsharp/thread/13d2ce8f-de6d-47c0-8992-4d443a49326f

アプリケーションの観点からは理論的には可能ですが、ハードウェアの制限もあります。

于 2012-12-13T02:04:36.690 に答える
0

I had the same problem and here is what I did:

  1. Create a canvas object
  2. Insert in that canvas object as many capture elements as I wanted
  3. Enumerate all the cameras available with DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
  4. Associate every camera id that i find with a capture element.
  5. Deploy.

However, when I run the app starting with vs 11 it only shows one active camera, but, when I run it from start menu, it shows me all the cameras I have.

于 2012-12-12T08:39:36.713 に答える