我有一个iOS应用,当旋转设备时,它仅支持纵向模式,即使UI的其余部分保持纵向,RTCMTLVideoView捕获的视频也会旋转为横向。
到目前为止,我发现的唯一解决方案是监听 UIDeviceOrientationDidChangeNotification 通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
并禁用它
- (void)orientationChanged:(NSNotification *)notification{
NSLog(@"orientation changed");
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
}
在没有这种丑陋的解决方法的情况下,有什么方法可以防止这种行为并将其锁定为纵向吗?
答案 0 :(得分:1)
在我的情况下,问题是前置摄像头捕获的视频没有镜像。
我解决了翻转RTCMTLVideoView的问题
self.myRTCMTLVideoView.transform = CGAffineTransformMakeScale(-1.0, 1.0)
答案 1 :(得分:0)
答案假定当前使用的是WebRTC的最新稳定M70分支,因为它是一个移动的目标,并且其内部类的API经常更改。
看起来RTCMTLVideoView
仍在进行中,无法正确处理所有情况。它具有rotationOverride
属性,但是没有有关如何使用它的文档或示例。 Google网上论坛上有一个类似的question,但尚未引起关注,我鼓励您参加那里的讨论,因此WebRTC开发人员将了解该问题的相关性并采取措施加以解决。
同时,我建议切换到RTCEAGLVideoView
,在这种情况下应该可以正常工作。