create method

Future<int> create({
  1. required String appKey,
  2. required NERtcChannelEventCallback channelEventCallback,
  3. NERtcOptions? options,
})

创建 NERtc 实例

Implementation

Future<int> create(
    {required String appKey,
    required NERtcChannelEventCallback channelEventCallback,
    NERtcOptions? options}) async {
  this._channelEventHandler.setCallback(channelEventCallback);
  var serverAddresses = RtcServerAddresses();
  final nertcServerAddresses = options?.serverAddresses;
  if (nertcServerAddresses != null) {
    serverAddresses
      ..valid = true
      ..channelServer = nertcServerAddresses.channelServer
      ..statisticsServer = nertcServerAddresses.statisticsServer
      ..roomServer = nertcServerAddresses.roomServer
      ..compatServer = nertcServerAddresses.compatServer
      ..nosLbsServer = nertcServerAddresses.nosLbsServer
      ..nosUploadSever = nertcServerAddresses.nosUploadSever
      ..nosTokenServer = nertcServerAddresses.nosTokenServer
      ..useIPv6 = nertcServerAddresses.useIPv6;
  }
  IntValue reply = await _api.create(CreateEngineRequest()
    ..appKey = appKey
    ..logDir = options?.logDir
    ..logLevel = options?.logLevel
    ..serverAddresses = serverAddresses
    ..audioAutoSubscribe = options?.audioAutoSubscribe
    ..audioDisableOverrideSpeakerOnReceiver =
        options?.audioDisableOverrideSpeakerOnReceiver
    ..audioAINSEnabled = options?.audioAINSEnabled
    ..audioDisableSWAECOnHeadset = options?.audioDisableSWAECOnHeadset
    ..videoEncodeMode = options?.videoEncodeMode?.index
    ..videoDecodeMode = options?.videoDecodeMode?.index
    ..videoCaptureObserverEnabled = options?.videoCaptureObserverEnabled
    ..serverRecordAudio = options?.serverRecordAudio
    ..serverRecordVideo = options?.serverRecordVideo
    ..serverRecordMode = options?.serverRecordMode?.index
    ..serverRecordSpeaker = options?.serverRecordSpeaker
    ..publishSelfStream = options?.publishSelfStream
    ..videoSendMode = options?.videoSendMode?.index
    ..videoH265Enabled = options?.videoH265Enabled);
  return reply.value ?? -1;
}