我正在编写一个OSX(Mac)应用程序来使用像QTPlayer这样的AVfoundation来录制iPhone屏幕。
但是,当我的手机屏幕方向改变时,我不知道如何获得通知。我试图寻求代表的解决方案,通知,但什么都没有。而且,我无法获得iPhone的屏幕尺寸。
我使用了AVCaptureInput AVCaptureSession AVCaptureDevice等。
我该怎么办?
答案 0 :(得分:0)
它已经解决了。 您需要添加一个名为 AVCaptureInputPortFormatDescriptionDidChangeNotification 的通知,如下所示:
NSNotificationCenter *notiCenter = [NSNotificationCenter defaultCenter];
id inputPortFormatDescriptionOberserver = [notiCenter addObserverForName:AVCaptureInputPortFormatDescriptionDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
didGetVideoDimensions = YES;
[wself.screenRecorderDelegate captureInputPortDidChanged];
NSLog(@"AVCaptureInputPortFormatDescriptionDidChangeNotification");
}];
您可以获得如下屏幕尺寸:
- (CGSize)optedDeviceSize{
CGSize size = CGSizeZero;
AVCaptureInputPort *port = self.videoDeviceInput.ports.firstObject;
if (port) {
CMVideoDimensions videoDimensions = CMVideoFormatDescriptionGetDimensions(port.formatDescription);
size = CGSizeMake(videoDimensions.width, videoDimensions.height);
}
return size;
}