init static method

Future<void> init()

Implementation

static Future<void> init() async {
  _methodChannel.setMethodCallHandler((MethodCall call) async {
    switch (call.method) {
      case 'onCreatePreRenderEngine':
        {
          TTFLogger.i('TTVideoEngineStrategy',
              'native to flutter onCreatePreRenderEngine');
          TTVideoEngineMediaSource source =
              TTVideoEngineMediaSource.fromJson(call.arguments);
          final cb = onCreatePreRenderEngine;
          if (cb == null) {
            // Avoid NPE if native triggers pre-render before Dart sets the callback.
            // Returning 0 tells native "no engine".
            TTFLogger.w('TTVideoEngineStrategy',
                'onCreatePreRenderEngine is null, returning 0');
            return 0;
          }
          VodPlayerFlutter player = await cb.call(source);
          return player.hashCode;
        }
      case 'onPlayerCreated':
        {
          TTVideoEngineMediaSource source =
              TTVideoEngineMediaSource.fromJson(call.arguments);
          VodPlayerFlutter player = VodPlayerFlutter();
          int? code = await player.getCreatedPlayer(uuid: source.getVid);
          if (code == player.hashCode) {
            onPlayerCreated?.call(player);
          } else {
            onPlayerCreated?.call(null);
          }
          return player.hashCode;
        }
    }
  });
}