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

2024-04-29

我正在尝试将 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 并将其放置在视图层次结构中,使其位于 SKView 后面。然后将视频层添加到该 UIView。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpriteKit SKScene 添加 AVCaptureVideoPreviewLayer CALayer 作为背景不起作用 的相关文章

  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • 在 ios 7 设备上获取多个应用程序图标

    我在 ios7 iPhone5 设备 上遇到一个奇怪的错误 我在ios7上使用xcode5安装了iPhone应用程序我的问题是每当我在设备上安装应用程序时 我都会收到多个应用程序图标 多次使用相同的名称 我还尝试通过我的系统使用不同的应用程
  • 看起来像 iOS7 向左导航 V 形的 Unicode 字符

    最接近 iOS7 向后指向导航栏 V 形的大小 与大写字母一样大或大于大写字母 和形状的 Unicode 字符是什么 我正在寻找一种使用 unicode 字符来模拟通常没有 返回 导航的视图的 向后导航 V 形的方法 常规的 对于锐角比 U
  • 使用视觉格式 NSLayoutConstraints 居中视图

    我正在尝试使用视觉格式语言将视图居中 self view addConstraints NSLayoutConstraint constraintsWithVisualFormat H progressView 300 options NS
  • AVSpeechUtterance 最大音量非常安静且速率非常快

    我正在考虑向我的应用程序添加语音提示 并在 iOS 7 中测试 AVSpeechUtterance 但默认语音速率非常快 最低语速更容易理解 但是最大音量值1太安静了 我在 iPhone 4 上进行了测试 并将音量调到最大 一定是出了什么问
  • 为什么我的 UITableView 顶部有额外的填充,样式为 UITableViewStyleGrouped 在 iOS7 中

    从 iOS7 开始 我的顶部有额外的空间UITableView有一种风格UITableViewStyleGrouped 这是一个例子 tableview从第一个箭头开始 有35个像素的不明填充 然后绿色标题是UIView由返回viewFor
  • IOS7 多点连接使用广告商的发现信息创建自定义附近浏览器列表

    我在用着多点连接框架 https developer apple com library ios documentation MultipeerConnectivity Reference MultipeerConnectivityFram
  • 完成后未删除时如何重用 CABasicAnimation?

    很多人都在谈论在使用 CABasicAnimation 对象后保留它 所以通过设置 完成时删除 否 当动画完成时 动画对象保持附加到图层 在不创建新的 CABasicAnimation 的情况下 如何重新启动该动画 保留这个物体有什么意义呢
  • 更改 SKPhysicsBody 的身体形状

    除了定义 SKPhysicsBody 形状的主体之外 我不想更改任何其他内容 我该怎么做呢 我似乎找不到在哪里可以改变这个 甚至评论如何改变它 是的 我知道这必须小心完成 以便避免所有可能的新碰撞 重叠等 但抛开这些 我如何更改 SKPhy
  • iOS7 无法隐藏状态栏

    我刚刚将我的 iPhone 5 iOS 7 升级到了四个测试版 现在 当我在这台 iPhone 上通过 Xcode 5 运行我的应用程序时 状态栏不会隐藏 尽管它应该隐藏 不工作 UIApplication sharedApplicatio
  • 精灵套件的方向键

    我有兴趣尝试创建一些游戏 即新的精灵套件 然而 对于我想要的游戏 我宁愿使用方向键而不是操纵杆 由于我将从 Cocos 转移过来 我的旧程序不再起作用 所以那个 dpad 也不起作用 遗憾的是 我还没有遇到任何可能有助于在新的精灵套件中实现
  • 带有 allowedEditing 的 UIImagePickerController 不允许平移裁剪

    我在这里看到这个问题 UIImagePicker 允许编辑卡在中心 https stackoverflow com questions 12630155 uiimagepicker allowsediting stuck in center
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • UITabBarController 未选择的图标图像色调

    我有一个 UITabBarController 我正在尝试修改 现在 未选择的选项卡图标图像默认为灰色 我知道您无法以编程方式更改这些未选择的图标图像的色调 苹果表示 色调是由 png 文件本身的实际色调控制的 因此 如果您想要白色或绿色图
  • iOS7状态栏和导航栏问题

    我正在将我的应用程序迁移到 iOS 7 为了处理状态栏问题 我添加了以下代码 if UIDevice currentDevice systemVersion floatValue gt 7 0f CGRect frame self navi
  • 使用 CLPlacemark、administrativeArea、iOS6/iOS7 更改内容

    我计划为 ios 7 制作一个应用程序 并且有管理区域地标属性的问题 对于 iOS6 我得到行政区域的全名 例如 加利福尼亚 但对于 iOS7 我得到 CA 的值 当情况如此变化时 这是一个问题 有什么方法可以控制这个输入 使其更加一致吗
  • iOS7及以上版本中如何在接收器和扬声器之间切换音频输出?

    我有一个音频播放器 可以选择在接近传感器通知 1 时将音频输出从扬声器切换到接收器 耳机 无论是否连接耳机 以下是我执行此操作的代码 void switchAudioOutput NSString output AVAudioSession
  • CoreAnimation 性能分析 - CAReplicatorLayer 与 CAShapeLayer

    我正在制作一个依赖 CoreAnimation 的应用程序 它有一个 CAReplicatorLayer 和一个 CAShapeLayer 作为子层 当进行 12 次复制 然后对路径进行动画处理 在 touchMoved 上更改它 时 一旦
  • Xcode 5 中的 iOS7 故事板不断垂直增长

    在 Xcode 5 中单击 iPad Storyboard 后 它询问我是否要升级到 iOS7 Storyboard 当警报出现在屏幕上时 它会不断垂直增长视图控制器 选择 升级 后 增长 就会停止 但那时损坏已经完成 视图控制器的大小也增

随机推荐