双向对讲
更新时间:2025-12-31 14:54:05
语音通话
双向对讲只在直播时可用
// 导入音视频通话头文件
import { RTCXAudiaVideoService, RTCXAudiaVideoTalk } from 'rtcxsdk'
export interface IAudioVideoTalk {
/**
开始通话
*/
startTalk(): void,
/**
结束通话
*/
endTalk(): void,
}
export interface IAudioVideoTalkListener {
/**
音视频通话失败回调
@param error 错误
*/
onFailToAudioVideoTalk?: (error: BusinessError<void>|undefined)=>void
}
export enum EAudioVideoTalkType {
Audio = 0,// 音频通话
Video = 1 // 视频通话
}
export class AudioVideoTalk implements IAudioVideoTalk {
private playInfo: IPlayInfo|undefined
private talkListener: IAudioVideoTalkListener|undefined
private avTalkType: EAudioVideoTalkType|undefined
constructor(playInfo: IPlayInfo, avTalkType: EAudioVideoTalkType, talkListener: IAudioVideoTalkListener)
}
调用示例如下:
// 1. 添加监听
audiaListener: RTCXAudiaVideoService.IAudioVideoTalkListener = {
onFailToAudioVideoTalk: (error: BusinessError<void>|undefined)=>{
RTCXLogger.i(this.TAG, `对讲发生错误:${error?.code}, ${error?.message}`)
}
}
// 2. 初始化通话引擎
const playInfo: RTCXMediaType.IPlayInfo = {
iotId: this.deviceInfo?.iotId!,
productKey: this.deviceInfo?.productKey!,
deviceName: this.deviceInfo?.deviceName!,
lensId: 0,
streamType: 0,
deviceType: 0
}
this.audioTalkEngin = new RTCXAudiaVideoTalk.AudioVideoTalk(playInfo,RTCXAudiaVideoService.EAudioVideoTalkType.Audio,this.audiaListener)
// 3. 开始音频通话
this.audioTalkEngin.startTalk()
// 4. 结束音频通话
this.audioTalkEngin.endTalk()
备注:当onFailToAudioVideoTalk:回调error.code = -10023时,代表当前语音对讲通道被其他端占用,应结束对讲。