设置音频编码属性

最近更新时间:2022-09-20 05:17:40

功能描述

为了满足不同应用场景对音质的不同需求,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"。