setMultiDeviceAVSync method
@detail api
@brief 设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。
@param audioUserId 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。
@return
- 0: 调用成功。调用该接口后音画同步状态发生改变时,你会收到 onAVSyncStateChange{@link #IRTCRoomEventHandler#onAVSyncStateChange} 回调。
- < 0 : 调用失败。你也可以通过监听 onAVSyncEvent{@link #IRTCRoomEventHandler#onAVSyncEvent} 获取错误详情。同一 RTC 房间内允许存在多个音视频同步关系,但需注意单个音频源不支持与多个视频源同时同步。
@note
- 该方法在进房前后均可调用。
- 进行音画同步的音频发布用户 ID 和视频发布用户 ID 须在同一个 RTC 房间内。
- 如需更换同步音频源,再次调用该接口传入新的 audioUserId 即可;如需更换同步视频源,需先解除当前的同步关系,后在新视频源端开启同步。
Implementation
Future<int?> setMultiDeviceAVSync(string audioUserId) async {
$a() => ($instance as $p_a.RTCRoom).setMultiDeviceAVSync(audioUserId);
$i() => ($instance as $p_i.ByteRTCRoom).setMultiDeviceAVSync(audioUserId);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}