Я программирую приложение какао, которое может редактировать потоковое видео с разных QTDeviceInputs.
В этот момент я могу легко отобразить 2 QtDeviceInputs в 2 разных QTCaptureView, но мне интересно, возможно ли перекрывать (возможно, с прозрачностью) потоки из внешних кулачков в одном представлении.
Какой вид я должен использовать для перекрытия видеопотоков?
Как я могу перекрывать эти 2 видеопотока?
Я думаю, что должен использовать OpenGlView, но я никогда не использовал его, и мне интересно, есть ли более простой способ сделать это.
Я пытался создать 2 QTCaptureLayer
следующим образом:
layer1=[[QTCaptureLayer alloc]initWithSession:session1];
layer2=[[QTCaptureLayer alloc]initWithSession:session2];
, где session1
и session2
- это 2 QTCaptureSession
, которые я использую для отображения 2 QTDeviceInput
.
Чем я добавил слои в NSView
:
[[myView layer] addSublayer:layer1];
но ничего не изменилось. Я создал NSView "myView" в конструкторе интерфейсов и связал его с владельцем файла.
Я также попытался нарисовать простой CALayer и добавить его в myView:
CALayer *layer = [CALayer layer];
layer.backgroundColor = CGColorCreateGenericRGB(0,0,0,1.0f);
layer.borderColor=CGColorCreateGenericRGB(100,100,100,1.0f);
layer.borderWidth=4.0;
NSRect rect = NSMakeRect(0, 0, 1000, 1000);
layer.frame = NSRectToCGRect(rect);
layer.cornerRadius = rect.size.height/5;
// Insert the layer into the root layer
[[myView layer] addSublayer:layer];
но ничего не случилось. NSView не изменился! Что я делаю не так?
Я попытался создать 2 QTCaptureLayer
следующим образом:
layer1=[[QTCaptureLayer alloc]initWithSession:session1];
layer2=[[QTCaptureLayer alloc]initWithSession:session2];
, где session1
и session2
- это 2 QTCaptureSession
, которые я использую для отображения 2 QTDeviceInput
.
Чем я добавил слои в NSView
:
[[myView layer] addSublayer:layer1];
но ничего не изменилось. Я создал NSView "myView" в конструкторе интерфейсов и связал его с владельцем файла.
Я также попытался нарисовать простой CALayer и добавить его в myView:
CALayer *layer = [CALayer layer];
layer.backgroundColor = CGColorCreateGenericRGB(0,0,0,1.0f);
layer.borderColor=CGColorCreateGenericRGB(100,100,100,1.0f);
layer.borderWidth=4.0;
NSRect rect = NSMakeRect(0, 0, 1000, 1000);
layer.frame = NSRectToCGRect(rect);
layer.cornerRadius = rect.size.height/5;
// Insert the layer into the root layer
[[myView layer] addSublayer:layer];
но ничего не произошло. NSView не изменился! Что я делаю не так?