如果控制器已初始化(视频播放器),则颤振 dispose()

斯昆达

每次我离开页面时,我的应用程序都会处理一个控制器,但是,我没有初始化控制器initState()并正在初始化它onTap,所以我想知道是否可以检查控制器是否已初始化以确定它是否应该处理它或不。

控制器是:

VideoPlayerController _controller;

我在一个之后初始化它onTap

onTap: () {
 setState(() {
     _initVideo(file);
 });
}

_initVideo(Future<File> videoFile) async {
    final video = await videoFile;
    _controller = VideoPlayerController.file(video)

      ..setLooping(false)
      ..initialize().then((value) => setState(() {
            _controller.addListener(() {
              setState(() {
              });
            });
          }));
  }

对于 dispose 我正在尝试检查 是否VideoController已初始化,如果已初始化,则dispose()不要。

@override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
无效 无效

一个简单的解决方案可能是在初始化时将标志设置为 true,并在您的 dispose 方法中检查它(我知道这应该是一个评论,但我没有 50 个代表)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ExoPlayer初始化播放器已弃用

视频播放器颤振的基本界面

如果我在使用中,用 null 初始化,我还会得到 Dispose advanges 吗?

如果.ctor()抛出,会调用Dispose()吗?

为什么NamedScopes从终结器调用dispose方法?

在具有终结器的类上调用.Dispose()

Flutter视频播放器0.10.9 + 2无法在真实的Android项目中初始化

System.ObjectDisposedException 没有在 asp.net core 2 控制器代码中的异步代码中调用 Dispose()

颤振错误:在AnimationController.dispose()之后调用AnimationController.stop()

如果您的ViewModel是IDisposable,MVC会调用Dispose吗?

AngularJS控制器初始化

Clion未初始化的记录类型:播放器

在初始化视频控制器之前设置视频路径

带键盘控制的视频播放器

如何为视图控制器提供指向已初始化的单例对象的指针?

如果要覆盖控制器的初始化,是否必须调用基本初始化?

在终结器中分配的资源与在dispose中释放的资源有什么区别

为什么在调用setVisible(false)和dispose()时,以不同的方式调用窗口/组件侦听器?

我是否需要在 Python 中为资源包装器实现 Dispose 模式

另一个播放器完成初始化后,videoJs播放器无法正确初始化

在api控制器初始化之前设置参数

在调用控制器之前初始化AngularJs应用

Angularjs控制器未初始化

AngularJS初始化控制器变量

AngularJS重新初始化控制器

从Laravel中的控制器问题初始化模型

在Swift中初始化视图控制器

视图控制器将无法初始化

AngularJS-在控制器之前初始化服务