gpt4 book ai didi

ios7 - SpriteKit SKScene 添加 AVCaptureVideoPreviewLayer CALayer 作为背景不起作用

转载 作者:行者123 更新时间:2023-12-04 04:36:37 27 4
gpt4 key购买 nike

我正在尝试将 AVCaptureVideoPreviewLayer CALayer 添加为我的 SKScene 的背景。我可以将 CALayer 添加到场景中,但无论尝试如何排序 CALayer 始终是最上面的对象。

在 didMoveToView 中,我有以下功能:

- (void) didMoveToView:(SKView *)view
{
[self addVideo];

}

其中调用 addVideo 函数:
-(void) addVideo {

AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];
captureSession.sessionPreset = AVCaptureSessionPresetHigh;

AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *videoIn = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:nil];

[captureSession addInput:videoIn];

AVCaptureVideoPreviewLayer *avLayer =
[AVCaptureVideoPreviewLayer layerWithSession:captureSession];
avLayer.frame = self.view.bounds;

CGSize landscapeSize;
landscapeSize.width = self.view.bounds.size.height;
landscapeSize.height = self.view.bounds.size.width;


CGRect landscapeRect;
landscapeRect.size = landscapeSize;
landscapeRect.origin = self.view.bounds.origin;

avLayer.frame = landscapeRect;

if(avLayer.connection.supportsVideoOrientation)
{
avLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
}

[self.scene.view.layer insertSublayer:avLayer atIndex:0];
[self.scene.view.layer setNeedsLayout];


[captureSession startRunning];

}

我尝试了多种方法来获取 AVCaptureVideoPreviewLayer CALayer 作为背景。每次将节点添加到场景中时,它都在此 CALayer 之上,有什么建议吗?

尝试了以下功能:
- (void) sendSublayerToBack:(CALayer *)layer
{
[layer removeFromSuperlayer];
[self.view.layer insertSublayer:layer atIndex:0];
}

但是还是不行....

最佳答案

不要在 SKView 层中显示该层 - 创建另一个 UIView 并将其放置在 View 层次结构中,使其位于 SKView 之后。然后将视频层添加到该 UIView。

您将必须使 SKView 透明,但在这里我不确定这是否有效 - 如果它像 cocos2d 一样工作:将 opaque 属性设置为 NO 并将 backgroundColor 属性更改为 nil (如果还不是 nil) .这应该使 SKView 透明。

如果这些都不起作用,也许您可​​以找到使用 SKVideoNode 的解决方法。

关于ios7 - SpriteKit SKScene 添加 AVCaptureVideoPreviewLayer CALayer 作为背景不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19645296/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com