设置音频编码属性

  • Android

更新时间不可用

了解实时互动 RTC 在不同平台上的设置音频编码属性方式,包括接入流程、关键配置和平台差异。

不同的 App 需要设置不同的音频编码属性或应用场景。本文介绍如何使用声网 RTC SDK 在你的 App 中设置合适的音频编码属性和应用场景。

技术原理

SDK 默认使用 AUDIO_PROFILE_DEFAULT 编码属性和 AUDIO_SCENARIO_DEFAULT 应用场景。如果默认设置无法满足你的需求,调用如下 API 设置音频编码属性和应用场景。

API描述
create(config)在创建 RtcEngine 实例时,设置音频应用场景。默认值为 AUDIO_SCENARIO_DEFAULT。
setAudioProfile(profile)在加入频道前后均可设置音频编码属性。
setAudioScenario在加入频道前后均可设置音频应用场景。
表格内容超出当前宽度,可横向滚动查看更多列。

前提条件

在实现设置音频编码属性和应用场景前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频互动。

实现方法

本节介绍如何为常见应用设置音频编码属性和应用场景。你可以将如下示例代码添加至你项目的 /app/java/com.example.<projectname>/MainActivity 文件中。

一对一互动教学

一对一互动教学主要要求保证通话质量、传输流畅。在你的项目中添加如下代码:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.DEFAULT);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_DEFAULT);

游戏开黑

该场景主要要求传输人声、无杂音、节省码率。声网推荐如下设置:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.CHATROOM);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_SPEECH_STANDARD);

剧本杀

该场景主要要求声音表现力好,上下麦时无音量、音质变化。声网推荐如下设置:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.CHATROOM);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD);

KTV

KTV 主要要求高音质、对音乐和歌声的表现力好。在你的项目中添加如下代码:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.GAME_STREAMING);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_HIGH_QUALITY);

语音电台

语音电台一般会使用专业的音频设备,主要要求高音质和立体声。在你的项目中添加如下代码:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.GAME_STREAMING);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO);

音乐教学

该场景主要要求高音质,支持将扬声器播放的音效传输到远端。声网推荐如下设置:

Java
// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.GAME_STREAMING);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD_STEREO);

双师课堂

该场景主要要求高音质,呈现丰富的声音效果,上下麦时无音量、音质变化。声网推荐如下设置:

Java

// 在创建 RtcEngine 实例时,设置音频应用场景
config.mAudioScenario = Constants.AudioScenario.getValue(Constants.AudioScenario.CHATROOM);
engine = RtcEngine.create(config);

// 设置音频编码属性
RtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_MUSIC_STANDARD_STEREO);

参考信息

相关文档

示例项目

声网提供了设置音频编码属性和应用场景功能的开源示例项目供你参考,你可以前往下载或查看其中的源代码。

API 参考