setOnPreRenderFrameCallback method

Future<void> setOnPreRenderFrameCallback(
  1. dynamic onPreRenderFrame(
    1. Object
    )
)

设置预渲染帧回调。

Implementation

Future<void> setOnPreRenderFrameCallback(
    Function(Object) onPreRenderFrame) async {
  BasicMessageChannel<String> _basicMessageChannel =
  BasicMessageChannel<String>(
    "onPreRenderFrame",
    StringCodec(),
  );
  // 注册调用 Flutter 端的 callback, 并发送至 Native 端
  _basicMessageChannel.setMessageHandler((message) async {
    if (message != null) {
      Map<String, dynamic> parsedArguments = jsonDecode(message);
      Object frameInfo = parsedArguments["param1"];
      bool result = onPreRenderFrame(frameInfo);
      // 处理接收到的消息
      return result.toString(); // 返回结果给 Native
    }
    return "false";
  });

  try {
    await FlutterAliPlayerFactory.methodChannel
        .invokeMethod('setOnPreRenderFrameCallback', wrapWithPlayerId());
  } on PlatformException catch (e) {
    print("Failed to register callback: '${e.message}'.");
  }
}