【问题标题】:ReplayKit square recordingReplayKit 方形录音
【发布时间】:2016-01-01 09:22:59
【问题描述】:

我想知道有没有办法强制 replaykit 以方形模式只记录屏幕的一部分?现在的API好像是全屏录的!

【问题讨论】:

  • wwdc 的那个人说了一些关于为类似目的指定另一个 UIWindow 的事情。不确定该 UIWindow 是否可以是方形的,或者它是否必须是全屏的,但我想目的是只记录某些部分。

标签: ios objective-c replaykit


【解决方案1】:

ReplayKit 记录屏幕上的所有内容,免除系统提示和对话框。

但是,您可以将另一个 UIWindow 覆盖在主 UIWindow 之上,并将掩码应用于空 UIView 以隐藏部分屏幕并强制进行方形录制。

但最终录制的帧率仍将与屏幕相同。

    _overlayWindow = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; //Full sized window
    _overlayWindow.backgroundColor =  [UIColor clearColor];
    _overlayWindow.userInteractionEnabled = false;
    _overlayWindow.hidden = NO;

UIView *maskedView = [[UIView alloc] initWithFrame:_overlayWindow.bounds];

    // Create a mask layer 
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    CGRect maskRect = CGRectMake(0, 0, 200, 200);

    // Create a path with the rectangle in it.
    CGPathRef path = CGPathCreateWithRect(maskRect, NULL);

    maskLayer.path = path;
    // Set the mask of the view.
    maskedView.layer.mask = maskLayer;

[_overlayWindow addSubview:maskedView];

【讨论】:

  • 谢谢,我会调查的
  • 你能指导我吗?
  • 我已经尝试过你的代码。但是,全屏录制。我无法录制特定的 CGRect
  • @ahbou 请指导我
  • @McDonal_11 ReplayKit 不支持录制特定帧。但是你可以用上面代码这样的掩码覆盖你的 mainWindow
【解决方案2】:

目前 ReplayKit 框架不提供屏幕大小方面的屏幕录制自定义。所以你必须记录整个 GamePlay 屏幕。

【讨论】:

  • 你知道记录 UIView 的其他方法吗?
  • 我不知道还有什么其他的查看录制方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 2020-03-09
  • 1970-01-01
相关资源
最近更新 更多