createRTCEngine static method

Future<RTCEngine> createRTCEngine(
  1. RTCVideoContext context
)

创建引擎实例,返回 engine 实例。

Implementation

static Future<RTCEngine> createRTCEngine(RTCVideoContext context) async {
  final map = context.parameters ?? {};
  map['rtc.platform'] = 6;
  final config = $p.EngineConfig(
    appID: context.appId,
    parameters: jsonEncode(map),
    isGameScene: context.isGameScene,
  );
  final handler = context.eventHandler ?? $p.IRTCEngineEventHandler();
  if (Platform.isAndroid) {
    final ctx = await NativeVariables.getApplicationContext();
    config.context = await Future.value(ctx);
    $engine_instance = await $a.RTCEngine.createRTCEngine(
      unpackObject<$a.EngineConfig>(config),
      packObject(handler, () => $p.android_IRTCEngineEventHandler()),
    );
  }

  if (Platform.isIOS) {
    config.parameters = map;
    $engine_instance = await $i.ByteRTCEngine.createRTCEngine(
      unpackObject<$i.ByteRTCEngineConfig>(config),
      packObject(handler, () => $p.ios_IRTCEngineEventHandler()),
    );
  }

  globalEngine = RTCEngine();

  if (context.autoCreateVideoEffectPlayer) {
    await globalEngine!.$createRTCVideoEffect();
  }

  if (context.autoCreateAudioEffectPlayer) {
    await globalEngine!.$createAudioEffectPlayer();
  }

  if (context.autoCreateWTNStream) {
    await globalEngine!.$createWTNStream();
  }
  return globalEngine!;
}