如何在颤抖中释放视频播放器

时间:2020-09-11 14:56:28

标签: flutter dart flutter-layout

我想知道如何在影片中释放视频播放器,所以我是个陌生的人。

每当用户滚动到新页面然后停止上一页视频或释放上一页控制器时,我都想在PageView中停止最后播放的视频。

下面是我的代码。

class _VideoPlayerItemState extends State<VideoPlayerItem> with AutomaticKeepAliveClientMixin,TickerProviderStateMixin{


VideoPlayerController _videoController;

@override
Widget build(BuildContext context) {
  return Stack(
  children: <Widget>[
    Container(
      decoration: BoxDecoration(color: Colors.black),
      child: Stack(
        children: <Widget>[
          Container(
            decoration: BoxDecoration(color: Colors.black),
            child: Stack(
              children: <Widget>[
                Center(
                  child: _videoController != null ? _videoController.value.initialized
                      ? AspectRatio(
                    aspectRatio: _videoController.value.aspectRatio,
                    child: VideoPlayer(_videoController),
                  )
                      : Container() : Center(child: Text("LOADING VIDEO ON NULL"),),
                ),
              ],
            ),
          ),
        ],
      ),
    ),
      ],
  );
}

此代码在用户滚动浏览量时执行。

onPageChangedForTutorial(PageController pageController) {
setState(() {
  _videoController  = VideoPlayerController.network(widget.videoUrl)
    ..initialize().then((value) {
      _videoController.play();
    });
  _videoController.setLooping(true);
});



 }

}

面对错误:每当我滚动页面时,直到新视频初始化之前,上一部视频才会停止。每当我滚动到新页面时,我都想立即停止播放

1 个答案:

答案 0 :(得分:0)

尝试

setState(() {
  _videoController.pause();
  _videoController.dispose();
  _videoController  = VideoPlayerController.network(widget.videoUrl)
    ..initialize().then((value) {
      _videoController.play();
    });
  _videoController.setLooping(true);
});