さまざまな QTDeviceInputs からのストリーミング ビデオを編集できるココア アプリをプログラミングしています。現時点では、2 つの異なる QTCaptureView で 2 つの QtDeviceInput を簡単に表示できますが、1 つのビューで外部カムからのストリームを (おそらく透過性を使用して) 重ねることができるかどうか疑問に思います。ビデオ ストリームをオーバーラップさせるには、どのような種類のビューを使用する必要がありますか? これら 2 つのビデオ ストリームをオーバーラップするにはどうすればよいですか?
私は OpenGlView を使用する必要があると思いますが、使用したことがないので、もっと簡単な方法があるのだろうかと思います。
私は次のように2を作成しようとしましたQTCaptureLayer
:
layer1=[[QTCaptureLayer alloc]initWithSession:session1];
layer2=[[QTCaptureLayer alloc]initWithSession:session2];
wheresession1
とsession2
are 2QTCaptureSession
を表示するために 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];
wheresession1
とsession2
are 2QTCaptureSession
を表示するために 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 は変更されていません。私が間違っていることは何ですか?