动态反正屏切换KSYLive_iOS

动态反正屏切换

1.8.4 版本以后直播SDK最先支撑动态反正屏切换的功用.
当主播的手机解除了体系的屏幕锁定功用后, 将手机扭转90°, 180°或270°, 体系的UI界面会在横屏状况和竖屏状况之间切换.
所谓动态反正屏切换就是指直播SDK对这类在直播过程当中动态发作的状况切换的适配.

动态反正屏切换包括以下两种条理

主播端预览界面追随体系UI界面的扭转
观众端播放画面追随主播预览界面的扭转

完成道理

主播端预览界面的扭转, 可以直接运用CGAffineTransform 来完成, 参考kit类中的rotatePreview要领.
要做到观众播放的画面也追随扭转, 则可以在GPU上先扭转好, 将扭转后的画面送到后续的紧缩和推流环节去, 参考kit类中的rotateStream要领.

可选计划的比较

1.假如零丁挑选挑选主播端预览界面, 推流画面不扭转

   长处: 比较轻易做到, 价值比较低, 对后续的视频紧缩, 源站, CDN,和播放等环节没有影响.
   瑕玷: 观众端看到的画面不是矫正后的画面, 挪动端的观众须要本身依据画面的扭转, 人肉扭转一下.

2.同时扭转预览界面和推流界面

   长处: 观众端可以一直看到正向的画面
   瑕玷: 因为视频流中的分辨率发作了变化, 对全部直播播放链路中的各个环节的适配性有请求, 任何环节支撑不当, 就会涌现花屏等征象.

集成要领

以运用kit类的客户为例申明集成要领, 须要定制的客户请参考kit类的完成要领
1.保证直播视图控制器可以接收到屏幕扭转的事宜关照
2.在直播视图控制器中增加屏幕扭转事宜回调, 在屏幕扭转完毕后, 将预览视图(和推流)扭转到扭转后的朝向

  • (void)viewWillTransitionToSize:(CGSize)size

       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { }
                                 completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
         if(SYSTEM_VERSION_GE_TO(@"8.0")) {
            [_kit rotatePreview];
            [_kit rotateStream];  // 可选
         }
     }];
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    }

反应与发起

答疑:金山云视频云客户端SDK答疑专区
邮箱:zengfanping@kingsoft.com
QQ议论群:574179720
release:https://github.com/ksvc/KSYLi…

    原文作者:金山云视频云rd
    原文地址: https://segmentfault.com/a/1190000007277009
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞