2016-04-05 6 views
0

У меня есть система с двумя камерами. У меня есть два объекта VideoSource, один из которых отображается в элементе управления VideoSourcePlayer. Я хочу, чтобы переключаться между ними, используя следующий код:Переключение между камерами, палочками на VideoSourcePlayer.Start()

videoSourcePlayer.SignalToStop 
videoSourcePlayer.WaitForStop(); 
if (videoSourcePlayer.VideoSource == videoSource1) 
{ 
    videoSourcePlayer.VideoSource = videoSource2; 
} 
else 
{ 
    videoSourcePlayer.VideoSource = videoSource1; 
} 
videoSourcePlayer.Start(); 

Когда я сначала нажать на кнопку переключения, я получаю «Connecting ...» сообщение в элементе управления videoSourcePlayer. Этого не произошло, когда я вызвал videoSourcePlayer.Stop(), который просто выбросил исключение, а затем продолжил. После переключения снова проблема исчезает. Другими словами, я могу без проблем переключаться между двумя камерами. Может ли кто-нибудь объяснить это и рассказать мне, как избежать проблемы?

Разъяснение

Я инициализировать объекты видеоисточника и игрок следующим образом:

videoSource1 = new VideoCaptureDevice(videoDevices[iiiVideoIndex].MonikerString); 
... 
videoSource1.NewFrame += iiiFrameHandler.SaveFrame; 
videoSourcePlayer.VideoSource = videoSource1; 
videoSourcePlayer.NewFrame += PlayerNewFrame; 
... 
videoSource1.Start(); 
... 
System.Threading.Thread.Sleep(500); 
videoSource2 = new VideoCaptureDevice(videoDevices[jjjVideoIndex].MonikerString); 
... 
videoSource2.NewFrame += jjjFrameHandler.SaveFrame; 
videoSource2.Start(); 

У меня есть три newFrameHandlers, потому что есть некоторые вещи, которые я хочу сделать через пользовательский интерфейс, а некоторые, что я хотите сделать в определенном состоянии для каждого кадра с каждой камеры.

ответ

0

Это нормально работать. Проблема заключалась в том, что обе камеры были подключены через внешний USB-концентратор. Программное обеспечение может идентифицировать обе камеры, но может подключаться только к одному.

Подсоединение одного из них к собственному порту USB затруднило проблему.