【问题标题】:A VideoPlayerController was used after being disposed. Once you have called dispose() on a VideoPlayerController, it can no longer be used处置后使用了 VideoPlayerController。一旦你在 VideoPlayerController 上调用了 dispose(),它就不能再使用了
【发布时间】:2020-04-16 15:12:19
【问题描述】:

我正在使用chewie 播放器播放 pageview.builder 中的视频列表。当我在下面滚动页面时它可以正常工作,但是当我滚动页面以查看顶部视频时,它会显示此错误。如何重新初始化 videoplayercontroller。

【问题讨论】:

  • 你是怎么解决的?您能否与 Chewie Video 分享您的页面视图构建器的实现?谢谢!
  • 请有人回答我也遇到同样的问题

标签: flutter dart


【解决方案1】:

问题是您必须销毁正在使用视频播放器的容器并在销毁后设置 .dipose() 。所以你的 kill 函数应该是这样的:

void killVidPlayer() {
    yourContainer = Container();
    setState(() {

    });

    _controller.dispose();
    _controller = null;
}

【讨论】:

    【解决方案2】:

    所以我按照这个人所说的在这里工作了github

      void initState() {
        super.initState();  //Super should be called at the very beginning of init
        _controller = VideoPlayerController.network(
          'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4',
        );
        _chewieController = ChewieController(
          videoPlayerController: _controller,
          aspectRatio: 3 / 2,
          autoPlay: true,
          looping: true,
        );
      }
    
    @override
      void dispose() {
        _controller.dispose();
        _chewieController.dispose();
        super.dispose(); //Super should be called at the very end of dispose
      }
    
    //Let me know if this doesn't solve your issue.
    
    

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2019-02-19
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      相关资源
      最近更新 更多