修复了RTCMTLVideoView webrtc

时间:2018-11-30 10:48:15

标签: ios objective-c webrtc

我有一个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];
}

在没有这种丑陋的解决方法的情况下,有什么方法可以防止这种行为并将其锁定为纵向吗?

2 个答案:

答案 0 :(得分:1)

在我的情况下,问题是前置摄像头捕获的视频没有镜像。

我解决了翻转RTCMTLVideoView的问题

self.myRTCMTLVideoView.transform = CGAffineTransformMakeScale(-1.0, 1.0)

答案 1 :(得分:0)

答案假定当前使用的是WebRTC的最新稳定M70分支,因为它是一个移动的目标,并且其内部类的API经常更改。


看起来RTCMTLVideoView仍在进行中,无法正确处理所有情况。它具有rotationOverride属性,但是没有有关如何使用它的文档或示例。 Google网上论坛上有一个类似的question,但尚未引起关注,我鼓励您参加那里的讨论,因此WebRTC开发人员将了解该问题的相关性并采取措施加以解决。

同时,我建议切换到RTCEAGLVideoView,在这种情况下应该可以正常工作。