音量指示
简介
Pano SDK 支持回调音频指示器(也称音量指示、音频强度)。
各端 SDK 相关接口,请查看下列介绍:
Windows (C++)
通过 RtcEngine 实例的 setAudioIndication(AudioIndication *indication, uint32_t intervalMs=200) 方法设置用户音频指示器(indication 参数传入 nullptr 来取消设置)。
通过 AudioIndication 的 onUserAudioLevel(UserAudioLevel &level) 方法回调用户音频强度。
UserAudioLevel 包含:
active本端的语音激活状态,当 userId 不为自己时,active 参数无效level音频强度,取值范围:[0, 32767]userId用户ID
macOS/iOS (Objective-C)
调用 PanoRtcEngineKit 的 + engineWithConfig:delegate: 方法初始化时,设置 PanoRtcEngineDelegate。
通过 PanoRtcEngineDelegate 的 - onUserAudioLevel: 方法回调用户音频强度。
PanoRtcAudioLevel 包含:
active本端的语音激活状态,当 userId 不为自己时,active 参数无效level音频强度,取值范围:[0, 32767]userId用户ID
还可以调用 PanoRtcEngineKit 的 - setAudioIndication:intervalMs: 方法设置:
- 是否启用
PanoRtcEngineDelegate的- onUserAudioLevel:回调 - 回调时间间隔(默认200ms)
示例代码:
-(void)onUserAudioLevel:(PanoRtcAudioLevel *)level{
NSLog(@"onUserAudioLevel, userId: %llu, active: %i, level: %u", level.userId, level.active, level.level);
}
Android (Java)
调用 RtcEngine 实例的 setAudioIndication(RtcAudioIndication indication, int intervalMs) 方法设置用户音频指示器(indication 参数传入 null 来取消设置)。
通过 RtcAudioIndication 的 onUserAudioLevel(RtcAudioLevel level) 回调用户音频强度。
RtcAudioLevel 包含:
active本端的语音激活状态,当 userId 不为自己时,active 参数无效level音频强度,取值范围:[0, 32767]userId用户ID
示例代码:
// 设置用户音频指示器
mRtcEngine.setAudioIndication(new RtcAudioIndication() {
@Override
public void onUserAudioLevel(RtcAudioLevel rtcAudioLevel) {
Log.i(TAG, "onUserAudioLevel, userId: " + rtcAudioLevel.userId + ", active: " + rtcAudioLevel.active + ", level: " + rtcAudioLevel.level);
}
}, 200);
// 取消设置用户音频指示器
mRtcEngine.setAudioIndication(null, 200);
Web
调用 RtcEngine 实例的 setUserAudioIndication 方法设置接收到的音频音量指示,setRecordingAudioIndication 方法设置本地发送的音频音量提示。
示例代码:
rtcEngine.setUserAudioIndication(data => console.log('UserAudioIndication', data))
/* level: 音频强度,取值范围 [0, 1]
[{level: 0.11062855475608095, active: true, userId: "20000"},
{level: 0.06848426199873967, active: true, userId: "30000"}]
*/
rtcEngine.setRecordingAudioIndication(data => console.log('RecordingAudioIndication', data))
// {level: 0.0013325767979099124, active: true, userId: "10000"}
Electron
调用 RtcEngine 实例的 setAudioIndicator(indicator, intervalMs) 方法设置用户音频指示器。
indicator表示回调函数(indicator参数传入null表示取消回调),具体请见下面示例代码。intervalMs表示回调时间间隔,单位毫秒,不能低于 10ms,默认值为 200ms
示例代码:
// 设置用户音频指示器
rtcEngine.setAudioIndicator(obj => {
console.log('AudioIndicator:', obj)
// {active: true, level: 855, userId: "10000"}
// {active: false, level: 898, userId: "12345"}
// active: 本端的语音激活状态,当 userId 不为自己时,active 参数无效
// level: 音频强度,取值范围:[0, 32767]
}, 200);
// 取消设置用户音频指示器
rtcEngine.setAudioIndicator(null, 200);
