产品百科 |使用阿里云 RTC SDK 耗时高怎么办?

简介: 本文为您介绍在使用 SDK 过程中减少耗时的方法。

配置合理的自动订阅和自动推流

以下建议可以为您减少耗时:

  • 如果您的场景中,入会后会默认推流,建议您采用自动推流模式。
  • 如果您的场景中,入会后默认会订阅频道中的人,建议您采用自动订阅的模式。自动订阅模式在接收到远端用户回调之后,不需要再手动订阅,能更加节省时间。

通过以下接口设置自动订阅和自动推流:

setAutoPublish:设置是否自动发布,是否自动订阅。默认是自动发布和订阅,必须在加入频道之前设置。

- (int)setAutoPublish:(BOOL)autoPub withAutoSubscribe:(BOOL)autoSub;

合理的使用 publish 和 subscribe 接口

以下建议可以为您减少耗时:

  • publish 和 subscribe 接口用于手动推流、手动订阅、以及会议中推流和订阅配置的变更。
  • publish 接口需要配合 configLocalCameraPublish、configLocalScreenPublish、configLocalAudioPublish 接口使用。
  • subscribe 接口需要配合 configRemoteCameraTrack、configRemoteScreenTrack、configRemoteAudio 接口使用。
  • 根据自身的需要,合理使用大小流。目前默认推小流,如果无需小流,建议关闭。
  • 需要注意:每次 config 完之后调用一次 publish 接口或者 subscribe 接口就可以,无需重复调用。如:当前相机流(大流)和音频流需要调用 publish 接口,而屏幕共享流不需要调用。
  • 正确的调用方式如下:
[self.engine configLocalAudioPublish:YES];
[self.engine configLocalCameraPublish:YES];
[self.engine configLocalScreenPublish:NO];
[self.engine configLocalSimulcast:NO forTrack:AliRtcVideoTrackCamera];
[self.engine publish:^(int err) {
    // 相关UI操作。
}];
  • 错误的调用方式如下:
[self.engine configLocalAudioPublish:YES];
[self.engine publish:^(int err) {
    // 相关UI操作。
}]; 
[self.engine configLocalCameraPublish:YES];
[self.engine publish:^(int err) {
    // 相关UI操作。
}]; 
[self.engine configLocalScreenPublish:NO];
[self.engine publish:^(int err) {
    // 相关UI操作。
}]; 
[self.engine configLocalSimulcast:NO forTrack:AliRtcVideoTrackCamera];
[self.engine publish:^(int err) {
    // 相关UI操作。
}];

场景中存在频繁切换频道或者频繁入离会

以下建议可以为您减少耗时:

  • 维护一个 SDK 的示例,避免频繁的创建和销毁 sdk 带来的耗时。通过一个 SDK 实例的入离会来达到切换频道的效果。
  • 可以根据需要,提前打开音频设备,节省每次入离会的耗时。比如:在语音直播间的场景,可以在创建 SDK 后调用一次 startAudioPlayer 接口提前打开播放设备。在销毁 sdk 前调用 stopAudioPlayer 接口关闭播放设备。中间切换频道和入离会均无需再额外调用。
    startAudioPlayer:开启音频播放。您可以控制提前打开音频播放,如果不设置,SDK 会在订阅成功的时候打开音频播放。
- (void)startAudioPlayer;
  • stopAudioPlayer:关闭音频播放。您可以控制关闭音频播放。
- (void)stopAudioPlayer;
  • 音频采集设备也可以根据自身的场景决定是否提前打开。startAudioCapture:开启音频采集。您可以控制提前打开音频采集,如果不设置,SDK 会在开始推流的时候打开音频采集。
- (void)startAudioCapture;
  • stopAudioCapture:关闭音频采集。您可以控制关闭音频采集。
- (void)stopAudioCapture;


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

image.png


相关文章
|
25天前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
44 7
|
3月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之支持的离线SDK有哪些
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
视觉智能开放平台产品使用合集之支持的离线SDK有哪些
|
3月前
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
3月前
|
SQL Java 关系型数据库
实时数仓 Hologres产品使用合集之如何安装和使用Java SDK
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之sdk的下载地址在哪里
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
存储 监控 API
视觉智能开放平台产品使用合集之人脸识别服务端的离线SDK是什么
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
32 0
|
4月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之如何使用SDK获取ODPS上的资源文件
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
JSON Java Serverless
函数计算产品使用问题之如何使用Go SDK从HTTP上下文中提取JSON数据
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
83 0
|
15天前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
47 1