功能描述
为了满足不同应用场景对音质的不同需求,SDK 提供了可对音频属性配置的接口,根据应用场景自定义搭配实现预期效果。比如对声音效果尤为敏感的语音电台、唱歌比赛类等场景。
音频属性配置包含了采样率、码率等设置:
- 音频采样率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。在人耳可感知范围内,采样率越高,高频分量就被保留的越多,这段信号的听感就越清晰明亮。
- 码率决定了音频信号经过编解码后的细节还原度。
码率并不是越高越好的。在实时互动中,码率过高可能挤占带宽产生网络拥塞,从而引发丢包,反过来破坏了用户体验。因此,选择合适的采样率、码率设置音频很关键。
功能实现
音频属性配置
Web SDK 提供了以下方法创建本地音频轨道 localAudioTrack
。
方法 | 描述 |
---|---|
createMicrophoneAudioTrack | 通过麦克风采集的音频创建音频轨道 |
createBufferSourceAudioTrack | 通过音频文件创建音频轨道 |
createCustomAudioTrack | 创建自定义音频轨道 |
设置音频编码属性,可以通过修改以上方法的 encoderConfig 参数来调整音频的属性配置。
encoderConfig 参数支持两种设置:
- SDK 内置的音频属性配置
- 自定义音频属性配置
SDK 内置的音频属性配置
内置的音频属性有以下参数,详见 AudioEncoderConfigurationPreset:
内置音频属性 | 配置 |
---|---|
"speech_low_quality" | 16 kHz 采样率,单声道,编码码率约 24 Kbps |
"speech_standard" | 32 kHz 采样率,单声道,编码码率约 24 Kbps |
"music_standard" | 48 kHz 采样率,单声道,编码码率约 40 Kbps |
"standard_stereo" | 48 kHz 采样率,双声道,编码码率约 64 Kbps |
"high_quality" | 48 kHz 采样率,单声道,编码码率约 128 Kbps |
"high_quality_stereo" | 48 kHz 采样率,双声道,编码码率约 192 Kbps |
示例
// 创建 48 kHz 采样率,双声道,编码码率约 192 Kbps 的音频轨道
ArRTC.createMicrophoneAudioTrack({
encoderConfig: "high_quality_stereo",
}).then(/**...**/);
自定义音频属性配置
自定义音频属性包含以下参数,详见 AudioEncoderConfiguration
自定义音频属性 | 描述 |
---|---|
sampleRate | 音频采样率,单位为 Hz |
stereo | 是否开启立体声 |
bitrate | 编码码率,单位为 Kbps |
示例
// 创建 48 kHz 采样率,双声道,编码码率约 192 Kbps 的音频轨道
ArRTC.createMicrophoneAudioTrack({
encoderConfig: {
sampleRate: 48000,
stereo: true,
bitrate: 192,
},
}).then(/**...**/);
API 参考
注意事项
- 请在发布
ArRTCClient.publish
之前设置好音频编码属性,音频轨道发布后将无法修改音频编码属性。 - 如果不传
encoderConfig
参数,SDK 将默认使用内置音频属性 "music_standard"。