2011-08-18 2 views
0

다른 QTDeviceInputs에서 스트리밍 비디오를 편집 할 수있는 코코아 응용 프로그램을 프로그래밍하고 있습니다. 이 순간 QCaptureView에서 2 개의 QtDeviceInputs를 쉽게 표시 할 수 있지만 외부 카메라의 스트림을 단일보기에서 겹쳐서 표시 할 수 있는지 궁금합니다. 비디오 스트림을 겹치기 위해 사용해야하는보기는 무엇입니까? 어떻게이 2 개의 비디오 스트림을 겹칠 수 있습니까?2 동일한 QTDeviceInput 동일한보기에서

저는 OpenGlView를 사용해야한다고 생각합니다. 그러나 사용하지는 않았으며 더 쉬운 방법이 있는지 궁금합니다.


나는 다음과 같이 2 QTCaptureLayer을 만들려고 : session1session2 내가 2 QTDeviceInput을 표시하기 위해 사용하고 2 QTCaptureSession을 어디에

layer1=[[QTCaptureLayer alloc]initWithSession:session1]; 
layer2=[[QTCaptureLayer alloc]initWithSession:session2]; 

. 내가 NSView A의 레이어를 추가보다 는 :

[[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을 만들려고 : session1session2 내가 2 QTDeviceInput을 표시하기 위해 사용하고 2 QTCaptureSession을 어디에

layer1=[[QTCaptureLayer alloc]initWithSession:session1]; 
layer2=[[QTCaptureLayer alloc]initWithSession:session2]; 

. 내가 NSView A의 레이어를 추가보다 는 :

[[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는 변경되지 않았습니다! 내가 뭘 잘못하고있어? 내가 제대로 문제를 이해한다면

답변

0

, OpenGLView에 의존 할 필요가 없습니다 :

당신이 원하는 것을 달성 할 수 있도록해야한다 QTCaptureLayer라는 클래스가있다가. 필요한 경우 캡처 레이어를 하위 레이어로 추가 할 수있는 레이어로 백업 된 NSView입니다.

블렌드 및 이와 유사한 목적으로 달성하려는 효과에 따라 캡처 레이어 'opacity, mask 또는 compositingFilter 속성을 사용할 수 있습니다.

관련 문제