提交工单
咨询集成、功能及报价等问题
本文将介绍 Express SDK 版本升级至 3.0.0 及以上版本时的说明和注意事项。
废弃 ZegoScenario 场景枚举中的 General
、Communication
、Live
三种场景,请参考 场景化音视频配置 文档进行适配。
从 3.0.0 版本开始,Express iOS SDK 不再支持 bitcode,详情请参考 Xcode 14 Release Notes 中关于废弃 bitcode 的说明。
适配方式:打开 Xcode 工程的配置页面,在 App Target 的 "Build Settings" 页面中找到 "Enable Bitcode" 选项,将其设置为 "No"。
删除下列在先前版本已废弃的接口。
方法名 | 描述 |
---|---|
SetDebugVerbose | 设置调试详细信息开关以及语言。此函数在 2.3.0 版本废弃,请使用 EnableDebugAssistant 来实现原来的功能。 |
LoginMultiRoom | 登录多房间。此方法在版本 2.9.0 以后已废弃,若需实现多房间功能,请先在引擎初始化之前调用 SetRoomMode 函数设置多房间模式,再使用 LoginRoom 登录多房间,如果调用 LoginRoom 函数登录多房间,请确保传入相同的用户信息。 |
SetPlayStreamVideoLayer | 设置选取拉流视频图层。此函数在 2.3.0 版本以后已废弃, 请使用 SetPlayStreamVideoType 代替。 |
EnableAudioDataCallback | 开启额外接收音频数据的回调。此函数在 2.7.0 版本以后已废弃,请使用 StartAudioDataObserver 和 StopAudioDataObserver 代替。 |
SetBuiltInSpeakerOn | 是否使用内置扬声器播放声音。此函数在 2.3.0 版本以后已废弃,请使用 SetAudioRouteToSpeaker 代替。 |
OnDeviceError | 设备异常通知。此函数在 2.15.0 版本及以上已废弃,请使用 OnLocalDeviceExceptionOccurred 代替。 |
您可以参考以下示例代码进行接口变更。
ZegoExpressEngine.GetEngine().SetDebugVerbose(true, ZegoLanguage.English);
// 注意,请勿在线上版本开启此功能!仅在开发阶段使用!
// Note, do not enable this feature in the online version! Use only during development phase!"
ZegoExpressEngine.GetEngine().EnableDebugAssistant(true);
ZegoExpressEngine.CreateEngine(profile, null);
ZegoUser user = new ZegoUser("user1");
ZegoExpressEngine.GetEngine().LoginRoom("first_room", user);
ZegoExpressEngine.GetEngine().LoginMultiRoom("second_room", null);
// 必须在调用 [createEngine] 之前设置才生效,否则会失败。
// Must be set before calling [createEngine] to take effect, otherwise it will fail.
ZegoExpressEngine.SetRoomMode(ZegoRoomMode.MULTI_ROOM);
ZegoExpressEngine.CreateEngine(profile, null);
ZegoUser user = new ZegoUser("user1");
ZegoExpressEngine.GetEngine().LoginRoom("first_room", user);
ZegoExpressEngine.GetEngine().LoginRoom("second_room", user);
ZegoExpressEngine.GetEngine().SetPlayStreamVideoLayer("stream1", ZegoPlayerVideoLayer.Auto);
ZegoExpressEngine.GetEngine().SetPlayStreamVideoType("stream1", ZegoVideoStreamType.Default);
int bitmask = ZegoAudioDataCallbackBitMask.Captured | ZegoAudioDataCallbackBitMask.Player;
ZegoAudioFrameParam param = new ZegoAudioFrameParam();
param.sampleRate = ZegoAudioSampleRate.ZegoAudioSampleRate48K;
param.channel = ZegoAudioChannel.Mono;
// Start
ZegoExpressEngine.GetEngine().SetAudioDataHandler(handler);
ZegoExpressEngine.GetEngine().EnableAudioDataCallback(true, bitmask, param);
// Stop
ZegoExpressEngine.GetEngine().SetAudioDataHandler(null);
ZegoExpressEngine.GetEngine().EnableAudioDataCallback(false, bitmask, param);
int bitmask = ZegoAudioDataCallbackBitMask.Captured | ZegoAudioDataCallbackBitMask.Player;
ZegoAudioFrameParam param = new ZegoAudioFrameParam();
param.sampleRate = ZegoAudioSampleRate.ZegoAudioSampleRate48K;
param.channel = ZegoAudioChannel.Mono;
// Start
ZegoExpressEngine.getEngine().SetAudioDataHandler(handler);
ZegoExpressEngine.getEngine().StartAudioDataObserver(bitmask, param);
// Stop
ZegoExpressEngine.getEngine().SetAudioDataHandler(null);
ZegoExpressEngine.getEngine().StopAudioDataObserver();
ZegoExpressEngine.GetEngine().SetBuiltInSpeakerOn(true);
ZegoExpressEngine.GetEngine().SetAudioRouteToSpeaker(true);
public void OnDeviceError(int errorCode, string deviceName) {
// Handle device error
// 处理设备错误
}
engine.onDeviceError = OnDeviceError;
public void OnLocalDeviceExceptionOccurred(ZegoDeviceExceptionType exceptionType, ZegoDeviceType deviceType, string deviceID) {
// Handle device error
// 处理设备错误
}
engine.onLocalDeviceExceptionOccurred = OnLocalDeviceExceptionOccurred;
联系我们
文档反馈