loadModelForStreaming method

void loadModelForStreaming({
  1. required String path,
  2. required String id,
  3. required String name,
})

Load a model onto this component handle. Streaming sessions are handle-bound, so the lifecycle-resolved model must be loaded here first (mirrors Swift prepareStreamingHandle). No-op when already loaded.

Implementation

void loadModelForStreaming({
  required String path,
  required String id,
  required String name,
}) {
  if (_loadedModelId == id && isLoaded) {
    return;
  }
  final fn = RacNative.bindings.rac_stt_component_load_model;
  final handle = getHandle();
  final pathPtr = path.toNativeUtf8();
  final idPtr = id.toNativeUtf8();
  final namePtr = name.toNativeUtf8();
  try {
    final code = fn(handle, pathPtr, idPtr, namePtr);
    if (code != RAC_SUCCESS) {
      throw StateError(
        'rac_stt_component_load_model failed: '
        '${RacResultCode.getMessage(code)}',
      );
    }
    _loadedModelId = id;
  } finally {
    calloc.free(pathPtr);
    calloc.free(idPtr);
    calloc.free(namePtr);
  }
}