disposeAsync method
Release resources and wait for native teardown to finish.
Implementation
Future<void> disposeAsync() async {
if (_pp == nullptr) {
textureId.dispose();
return;
}
await updateTexture(width: -1);
state = PlaybackState.stopped;
Libfvp.unregisterPort(nativeHandle);
_eventCb.close();
Libfvp.unregisterType(nativeHandle, 0);
_stateCb.close();
Libfvp.unregisterType(nativeHandle, 1);
_statusCb.close();
Libfvp.unregisterType(nativeHandle, 2);
_receivePort.close();
Libmdk.instance.mdkPlayerAPI_delete(_pp);
calloc.free(_pp);
_pp = nullptr;
textureId.dispose();
}