产品百科 |RTC iOS SDK 切换横竖屏实现方法

简介: 当您成功集成 SDK,并想实现移动端切换横竖屏进行实时音视频通信。您可以阅读本文,了解实现本地切换横竖屏的代码方法,帮助您更好的体验阿里云音视频通信服务。

音视频通信 RTC(Real-Time Communication)是阿里云覆盖全球的实时音视频开发平台,依托核心音视频编解码、信道传输、网络调度技术,提供高可用、高品质、超低延时的音视频通信服务,让用户快速搭建多端实时应用,适用于在线教育、视频会议、互动娱乐、音视频社交等场景。


产品链接:https://www.aliyun.com/product/rtc


当您成功集成 SDK,并想实现移动端切换横竖屏进行实时音视频通信。您可以阅读本文,了解实现本地切换横竖屏的代码方法,帮助您更好的体验阿里云音视频通信服务。

横竖屏模式切换

正常情况下竖屏模式推流分辨率宽 <高,例如:480*640;横屏模式推流分辨率宽> 高,例如:640*480。

如果您想切换横竖屏,请调用 setDeviceOrientationMode 方法进行切换横竖屏。该方法调用成功返回 0,失败返回其他。

说明 仅允许在推流和预览之前进行设置。

//接口方法
- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;
//示例方法
[[UIDevice currentDevice] setValue:@(UIDeviceOrientationLandscapeLeft) forKey:@"orientation"];
[self.engine setDeviceOrientationMode:(AliRtcOrientationModeLandscapeLeft)];
参数 类型 描述
mode AliRtcOrientationMode 设备方向。取值:
  • AliRtcOrientationModePortrait(默认值):固定竖屏模式。
  • AliRtcOrientationModeLandscapeLeft:固定左横屏模式。
  • AliRtcOrientationModeLandscapeRight:固定右横屏模式。
  • AliRtcOrientationModeAuto:自适应横竖屏模式。

说明

  • 当应用切换横竖屏时,调用此接口进行设备方向切换,摄像头采集会随机进行切换。
  • 1.17 之前版本仅支持固定竖屏模式,不支持动态横竖屏切换,即只要当前未打开摄像头采集(未开启预览并且未开始推视频流),设置可生效;打开摄像头后再设置不生效。

竖屏模式切换推流分辨率宽高

竖屏模式推流分辨率宽 > 高,例如:640*480(摄像头保持竖屏采集)。

您可以调用 setVideoSwapWidthAndHeight 方法切换分辨率。

说明 请您在调用 setVideoProfile 和 joinChannel 之前进行切换。

- (void)setVideoSwapWidthAndHeight:(BOOL)swapWidthAndHeight forTrack:(AliRtcVideoTrack)track;
参数 类型 描述
swapWidthAndHeight BOOL 是否交换宽和高,取值:YES|NO(默认值)
track AliRtcVideoTrack 视频 Track 类型

说明 您可以在以下情况调用该接口进行切换宽和高:

  • 竖屏模式下竖屏推流,推流分辨率需要宽 > 高。
  • 横屏模式下横屏推流,推流分辨率需要宽 < 高。


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关实践学习
搭建简易多人在线视频会议系统
本场景将介绍使用音视频服务单间一个简易的视频会议室。
相关文章
|
4月前
|
开发工具 iOS开发 计算机视觉
|
3月前
|
开发工具 iOS开发 容器
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
|
3月前
|
开发工具 图形学 iOS开发
Unity与IOS⭐Unity接入IOS SDK的流程图
Unity与IOS⭐Unity接入IOS SDK的流程图
|
4月前
|
开发工具 iOS开发 容器
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
iOS Objective-C 应用连接Azure Storage时,若不关闭账号的匿名访问,程序能正常运行。但关闭匿名访问后,上传到容器时会出现错误:“Public access is not permitted”。解决方法是将创建容器时的公共访问类型从`AZSContainerPublicAccessTypeContainer`改为`AZSContainerPublicAccessTypeOff`,以确保通过授权请求访问。
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
|
Java iOS开发
IOS学习笔记十三(使用类别实现非正式协议)
IOS学习笔记十三(使用类别实现非正式协议)
125 0
|
3天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
112 1
|
11天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
32 9
|
7天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
10天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。

热门文章

最新文章

下一篇
无影云桌面