1

我想知道有没有办法强制 replaykit 以方形模式只记录屏幕的一部分?当前的API似乎记录了整个屏幕!

4

2 回答 2

3

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];
于 2017-02-08T11:14:56.050 回答
0

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

于 2016-01-01T09:44:21.677 回答