在一些比较专业的场景里,用户对声音的效果尤为敏感,比如语音电台,此时就需要对双声道和高音质的支持。
所谓的高音质指的是我们提供采样率为 48 kHz、码率 128 Kbps 的能力,帮助用户实现高逼真的音乐场景,这种能力在语音电台、唱歌比赛类直播场景中应用较多。
本文指导开发者根据对音质、声道、场景等的不同需求,选择不同的音频属性,获得最佳实时互动效果。
声网 SDK 提供 setAudioProfile
方法给开发者根据场景需求灵活配置适合的音质属性。这个方法有 2 个参数:
参数 | 描述 |
---|---|
profile | 代表不同的音频参数配置(音质),比如采样率、码率和编码模式等:
|
scenario | 设置音频的使用场景,如娱乐、教学和游戏直播等。声音的流畅度、噪声抑制、音质等会根据不同的场景做出优化:
|
你可以参考下图,根据应用场景对音质、设备的不同需求,选择不同的参数搭配。
参数 | 场景需求 | 选项 |
---|---|---|
profile | 高音质 | |
有一定音质要求 | ||
对音质无要求 | ||
scenario | 音质/音效优先 | GameStreaming |
频繁上下麦 | ChatRoomEntertainment | |
支持外放设备 | ShowRoom | |
开黑少杂音 | ChatRoomGaming | |
传输质量稳定 | Default |
也可以根据下表中提供的场景,直接选择参数进行搭配。
场景 | profile | scenario | 特性 |
---|---|---|---|
1 v 1 小班课 | Default | Default | 传输流畅、音质高清,优先保证通话质量 |
游戏开黑 | SpeechStandard | ChatRoomGaming | 只保留语音,非语音部分(键盘声、外放音乐等)不会被传输。节省码率的同时减少杂音,适合多人团战 |
剧本杀 | MusicStandard | ChatRoomEntertainment | 优秀的音乐编解码技术,提供更为丰富的声音呈现。上下麦没有音量、音质变化 |
KTV 练歌房 | MusicHighQuality | GameStreaming | 高音质搭配丰富音效,适用于对音质要求高的场景 |
语音电台 | MusicHighQualityStereo | ShowRoom | 高音质,立体声,支持专业外放设备 |
音乐教学 | MusicStandardStereo | GameStreaming | 优先保证音质。适用于外放音效也能直播出去的场景 |
双师课堂 | MusicStandardStereo | ChatRoomEntertainment | 保证音质的同时,呈现更丰富的声音效果。上下麦没有音量、音质变化 |
// swift
// 开黑聊天室
agoraKit.setAudioProfile(.speechStandard, scenario: .chatRoomGaming)
// 娱乐聊天室
agoraKit.setAudioProfile(.musicStandard, scenario: .chatRoomEntertainment)
// K 歌房
agoraKit.setAudioProfile(.musicHighQuality, scenario: .chatRoomEntertainment)
// FM 超高音质
agoraKit.setAudioProfile(.musicHighQuality, scenario: .gameStreaming)
// objective-c
// 开黑聊天室
[agoraKit setAudioProfile: AgoraAudioProfileSpeechStandard scenario: AgoraAudioScenarioChatRoomGaming];
// 娱乐聊天室
[agoraKit setAudioProfile: AgoraAudioProfilemusicStandard, scenario: AgoraAudioScenarioChatRoomEntertainment];
// K 歌房
[agoraKit setAudioProfile: AgoraAudioProfileMusicHighQuality, scenario: AgoraAudioScenarioChatRoomEntertainment];
// FM 超高音质
[agoraKit setAudioProfile: AgoraAudioProfilemusicHighQuality, scenario: AgoraAudioScenarioGameStreaming]
不同的 Audio scenario 下,设备的系统音量是不同的。
系统音量分通话音量和媒体音量两种:
两者的差异在于媒体音量可以调整到 0,而通话音量不可以。
SDK 在 setAudioProfile
中提供 6 种不同的 Audio scenario,其中不同的 Audio scenario 使用的音量不同。如果需要将音量调整到 0,建议使用媒体音量控制的 Audio scenario。
Audio scenario | 音量 |
---|---|
GameStreaming | 媒体音量 |
Default | |
Education | |
ShowRoom | |
ChatRoomEntertainment | 通话音量 |
ChatRoomGaming | 通话音量 |