nativeEnsureInitialized function
Initializes the native backend for package:media_kit.
Implementation
void nativeEnsureInitialized({String? libmpv}) {
AndroidHelper.ensureInitialized();
NativeLibrary.ensureInitialized(libmpv: libmpv);
NativeReferenceHolder.ensureInitialized((references) async {
if (references.isEmpty) {
return;
}
const tag = NativeReferenceHolder.kTag;
print('$tag Found ${references.length} reference(s).');
print('$tag Disposing:\n${references.map((e) => e.address).join('\n')}');
// I can only get quit to work; [mpv_terminate_destroy] causes direct crash.
final mpv = generated.MPV(DynamicLibrary.open(NativeLibrary.path));
final cmd = 'quit'.toNativeUtf8();
try {
for (final reference in references) {
mpv.mpv_command_string(reference.cast(), cmd.cast());
}
} finally {
calloc.free(cmd);
}
});
}