使用视频全屏模式(横向)时,Flutter咀嚼处理不工作



我使用chewie包在flutter中播放视频,当我播放视频并退出页面时,dispose工作正常,但当我使用全屏并尝试退出页面时音频/视频仍将播放。上面写着:在无效上调用了dispose

这是我的代码:

class _ChewieListItemState extends State<ChewieListItem> {
ChewieController _chewieController;

@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Chewie(
controller:_chewieController ,
),
);
}

@override
void initState() {
super.initState();
// Wrapper on top of the videoPlayerController
_chewieController = ChewieController(
videoPlayerController: widget.videoPlayerController,
aspectRatio: 16 / 9,
// Prepare the video to be played and display the first frame
autoInitialize: true,
looping: widget.looping,
autoPlay: false,
allowFullScreen: true,
allowedScreenSleep: false,
// Errors can occur for example when trying to play a video
// from a non-existent URL
errorBuilder: (context, errorMessage) {
return Center(
child: Text(
'Network Error, please try again',
style: TextStyle(color: Colors.white),
),
);
},
);
}

@override
void dispose() {
super.dispose();
widget.videoPlayerController.dispose();
_chewieController.dispose();
}
}

在initState函数中初始化您的videoPlayerController

class _ChewieListItemState extends State<ChewieListItem> {
ChewieController _chewieController;
VideoPlayerController videoPlayerController;


@override
void initState() {
super.initState();
videoPlayerController = VideoPlayerController.asset(path); // init controller here
// Wrapper on top of the videoPlayerController
_chewieController = ChewieController(
videoPlayerController: videoPlayerController, // remove the widget tag
);
}

@override
void dispose() {
super.dispose();
videoPlayerController.dispose(); // remove the widget tag here as well    
}
}

只是遇到了同样的问题,花了3天时间寻找解决方案。

最新更新