createRTCEngine static method
创建引擎实例,返回 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!;
}