我正在编写一个可可应用程序,它可以编辑来自不同 QTDeviceInputs 的流媒体视频。此时我可以轻松地在 2 个不同的 QTCaptureView 中显示 2 个 QtDeviceInputs,但我想知道是否可以在单个视图中重叠(可能具有透明度)来自外部摄像头的流。我必须使用哪种视图来重叠视频流?我如何重叠这两个视频流?
我想我必须使用 OpenGlView,但我从未使用过它,我想知道是否有更简单的方法来做到这一点。
我尝试QTCaptureLayer
按如下方式创建 2:
layer1=[[QTCaptureLayer alloc]initWithSession:session1];
layer2=[[QTCaptureLayer alloc]initWithSession:session2];
wheresession1
和session2
are 2QTCaptureSession
我用来显示 2 QTDeviceInput
。比我在 a 添加图层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 没有改变!我做错了什么?
我尝试QTCaptureLayer
按如下方式创建 2:
layer1=[[QTCaptureLayer alloc]initWithSession:session1];
layer2=[[QTCaptureLayer alloc]initWithSession:session2];
wheresession1
和session2
are 2QTCaptureSession
我用来显示 2 QTDeviceInput
。比我在 a 添加图层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 没有改变!我做错了什么?