前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 实时音视频(TRTC)实现横屏视频通话

Android 实时音视频(TRTC)实现横屏视频通话

原创
作者头像
腾讯云-yyuanchen
修改于 2019-09-30 03:40:52
修改于 2019-09-30 03:40:52
10.1K04
代码可运行
举报
运行总次数:4
代码可运行

问题场景

如果您因业务场景需求,需要用户将手机横着放,然后进行视频通话。可以参考以下文档实现该功能。

解决方案

场景一:用户习惯是手机固定横着放。

1. 将 Activity 设置为横屏

假设视频通话界面名为 TRTCMainActivity,在 AndroidManifest.xml 中将该界面设置为横屏。

代码语言:txt
AI代码解释
复制
<activity
    android:name=".trtc.TRTCMainActivity"
    android:launchMode="singleTask"
    android:windowSoftInputMode="adjustPan"
    android:screenOrientation="landscape" />

2.将视频分辨率设置为横屏

代码语言:txt
AI代码解释
复制
private TRTCCloud trtcCloud;              /// TRTC SDK 实例对象
private TRTCCloudListener trtcListener;   /// TRTC SDK 回调监听

// 创建 trtcCloud 实例
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ....
    trtcListener = new TRTCCloudListenerImpl(this);
    trtcCloud = TRTCCloud.sharedInstance(this);
    trtcCloud.setListener(trtcListener);
    // 预览前配置默认参数
	setTRTCCloudParam();
	// 开启视频采集预览
	......
	//进房
	trtcCloud.enterRoom(trtcParams, TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL);
}

/**
 * 设置视频通话的视频参数(分辨率、帧率和流畅模式等参数)
 */
private void setTRTCCloudParam() {

    // 大画面的编码器参数设置
    TRTCCloudDef.TRTCVideoEncParam encParam = new TRTCCloudDef.TRTCVideoEncParam();
    encParam.videoResolution = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_640_360;  
    encParam.videoFps = 15;
    encParam.videoBitrate = 550;
    // videoResolutionMode 设置为横屏
    encParam.videoResolutionMode = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_LANDSCAPE; 
    trtcCloud.setVideoEncoderParam(encParam);

    ......
}

场景二:用户习惯是手机固定横着放,但需支持手机旋转 360 度。

首先按照场景一的流程实现,然后开启 SDK 的重力接口即可。

代码语言:txt
AI代码解释
复制
/**
 * 设置视频通话的视频参数(分辨率、帧率和流畅模式等参数)
 */
private void setTRTCCloudParam() {

    // 大画面的编码器参数设置
    TRTCCloudDef.TRTCVideoEncParam encParam = new TRTCCloudDef.TRTCVideoEncParam();
    encParam.videoResolution = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_640_360;  
    encParam.videoFps = 15;
    encParam.videoBitrate = 550;
    // videoResolutionMode 设置为横屏
    encParam.videoResolutionMode = TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_LANDSCAPE; 
    trtcCloud.setVideoEncoderParam(encParam);

	// 开启重力感应
	trtcCloud.setGSensorMode(TRTCCloudDef.TRTC_GSENSOR_MODE_UIAUTOLAYOUT);
    ......
}

原理说明

TRTC SDK 还提供了 5个 改变渲染角度(本地预览、远端观众)的接口,方便您根据场景需要进行各种调整。

补充

1) 为什么横屏预览会有出现裁剪的问题?

建议您先将TRTC SDK 更新到 6.3 版本或以上,问题应该能迎刃而解。

2) 是否能设置预览画面的渲染效果(填充 or 适应)?

SDK 支持该功能。您可以使用TrtcCloud.setLocalViewFillMode(); 接口来实现效果。其中的值分别是:

填充模式(画面可能会被拉伸裁剪)值为 TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_FIT

适应模式(画面可能会有黑边)值为 TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_FILL

3) 参考文档


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
NAT网络地址转换_路由交换基础
网络地址转换NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能,实现局域网内的主机访问外部网络。通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,既保证网络互通,又节省公网地址。
张旭博客
2022/12/27
1K0
NAT网络地址转换_路由交换基础
网络地址转换 NAT知识点总结及案例习题
公司有一个Web服务器部署在内网IP地址 192.168.10.10,端口为8080。公网IP为 203.1.1.1,要求外部用户访问该公网地址即可访问内网服务器。
知孤云出岫
2025/06/09
1450
42张图详解 NAT : 换个马甲就能上网
IP 地址分为公网地址和私有地址。公网地址有 IANA 统一分配,用于连接互联网;私有地址可以自由分配,用于私有网络内部通信。
用户7656790
2021/04/30
2.1K0
42张图详解 NAT : 换个马甲就能上网
非常重要的地址转换(NAT)技术,必须好好捋一遍!
RFC1631文档描述了:NAT是将IP数据报的报头中的IP地址转换为另一个IP地质大过程。在实际应用中,NAT主要用于实现私有网络访问外部网络的功能。这种通过允许使用少量的公有IP地址代表多数私有IP地址的方式将有助于减缓可用IP地址空间站枯竭的速度。
网络技术联盟站
2020/05/06
5.4K0
华为设备ACL与NAT技术
ACL 访问控制列表(Access Control Lists),是应用在路由器(或三层交换机)接口上的指令列表,用来告诉路由器哪些数据可以接收,哪些数据是需要被拒绝的,ACL的定义是基于协议的,它适用于所有的路由协议,并根据预先定义好的规则对数据包进行过滤,从而更好的控制数据的流入与流出.
王 瑞
2022/12/28
5670
华为设备ACL与NAT技术
访问控制列表ACL配置规则_路由交换
定义一系列不同的规则对数据包进行分类,针对不同的报文进行不同的处理,实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等。
张旭博客
2022/12/27
9420
访问控制列表ACL配置规则_路由交换
内网向外网提供服务,如何“漠视”NAT?NAT Server技术就这样诞生了!
今天给大家介绍一下NAT Server,包括NAT Server的原理、工作过程、配置(华为、思科、Juniper)。
网络技术联盟站
2023/07/22
8590
内网向外网提供服务,如何“漠视”NAT?NAT Server技术就这样诞生了!
NAT的双机热备方案
一般的NAT组网中,内网用户通过单台设备进行NAT转换访问外网,NAT设备承担了所有内外网之间的流量,无法规避单点故障。一旦发生单点故障,将导致内网用户无法与外网通信。
全栈程序员站长
2022/07/23
1.7K0
华为ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
静态NAT(Static NAT)是一种网络地址转换(NAT)技术,它将一个内部私有IP地址转换为一个公有IP地址。静态NAT通常用于允许内部网络上的设备访问互联网。
神秘泣男子
2024/06/03
2.2K1
华为ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
华为模拟器NAT地址转换技术
防火墙NAT Server配置 (CLI) 配置内部Web和FTP服务器 [USG] nat server wwwserver protocol tcp global 202.169.10.1 80 inside 192.168.20.2 8080 [USG] nat server ftpserver protocol tcp global 202.169.10.1 ftp inside 192.168.20.3 ftp 配置域间包过滤规则 [USG] security-policy [USG -policy-security] rule name p1 [USG -policy-security-rule-p1] source-zone untrust [USG -policy-security-rule-p1] destination-zone dmz [USG -policy-security-rule-p1] destination-address 192.168.20.2 32 [USG -policy-security-rule-p1] service http [USG -policy-security-rule-p1] action permit [USG -policy-security] rule name p2 [USG -policy-security-rule-p2] source-zone untrust 配置内部Web和FTP服务器(web)
团团生活志
2022/08/16
9230
华为模拟器NAT地址转换技术
计算机网络实验四访问控制列表NAT应用
掌握ACL在企业网络中的应用;掌握ACL的工作原理;掌握ACL的配置;掌握NAT的工作原理;掌握NAT的基本配置。
全栈程序员站长
2022/09/15
5010
内网转公网转换协议NAT综合协议配置【附学习总结】
1、基本配置基本配置(接口 IP 地址、设备主机名等)【这里就不演示了,兄弟们可以自行设置】
Ponnie
2022/03/15
1.2K0
内网转公网转换协议NAT综合协议配置【附学习总结】
华为datacom-HCIA学习笔记汇总2.0
1.1.1.3. [R2-g0/0/1]ospf authentication-mode simple huawei 6
青灯古酒
2023/10/16
5060
华为datacom-HCIA学习笔记汇总2.0
iis7NAT端口的映射方法
本地地址与全局地址(公网)之间一对一映射,即一台主机对应一个公网IP。在使用IIS7服务器监控工具的时候发现该软件风格简约,操作简单,删除系统缓存,重启服务器,修改服务器账号密码,修复服务器复制功能等,也可以一键开启关闭MYSQL和503错误的监控,省去了繁琐的操作步骤,一键完成。也可以直接修改远程端口范围,省去繁琐步骤。
it妹
2019/08/09
1.5K0
iis7NAT端口的映射方法
h3c nat
       ACL允许(permit)的保温将被进行NAT转换,被拒绝(deny)的保温不会被 转换。
py3study
2020/01/06
8200
什么是两次NAT(Twice NAT)技术?华为和思科设备如何配置?本文给您解惑!
两次NAT技术允许同时对源IP地址和目的IP地址进行转换。它适用于内部网络中的主机地址与外部网络上的主机地址重叠的情况。在本文中,我们将详细探讨两次NAT技术的原理和应用。
网络技术联盟站
2023/09/06
1.4K0
什么是两次NAT(Twice NAT)技术?华为和思科设备如何配置?本文给您解惑!
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/03/01
3.1K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/02/07
2.4K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
ENSP Nat地址转换(配置命令 )
[Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24 [Huawei-GigabitEthernet0/0/0]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip add 202.0.0.1 26 [Huawei]ip route-static 0.0.0.0 0 202.0.0.2              默认路由 所有的数据都指向 202.0.0.2
神秘泣男子
2024/06/03
3820
ENSP Nat地址转换(配置命令 )
ensp学习第九弹网络地址转换
地址转换nat(network address translation)是将IP书记报文头中的IP地址转换到另一个IP地址的过程,作为减缓IP地址枯竭的一种过渡方案,nat通过地址重用的方法满足IP地址的需要,可以一定程度上缓解IP地址空间的压力。nat除了解决IP地址短缺的问题还带来了两个好处:
用户8447427
2022/08/18
8850
ensp学习第九弹网络地址转换
推荐阅读
相关推荐
NAT网络地址转换_路由交换基础
更多 >
LV.9
这个人很懒,什么都没有留下~
目录
  • 问题场景
  • 解决方案
    • 场景一:用户习惯是手机固定横着放。
    • 1. 将 Activity 设置为横屏
    • 2.将视频分辨率设置为横屏
  • 场景二:用户习惯是手机固定横着放,但需支持手机旋转 360 度。
  • 原理说明
  • 补充
    • 1) 为什么横屏预览会有出现裁剪的问题?
  • 2) 是否能设置预览画面的渲染效果(填充 or 适应)?
  • 3) 参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验