如何解决将video_player程序包与Flutter Hooks一起使用可播放全屏背景视频
我有一个主屏幕小部件,该小部件使用video_player包播放全屏背景视频。 这段代码对我来说很好:
class HomeScreen extends StatefulWidget {
HomeScreen({Key key}) : super(key: key);
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
VideoPlayerController _controller;
void initState() {
super.initState();
// Pointing the video controller to mylocal asset.
_controller = VideoPlayerController.asset("assets/waterfall.mp4");
_controller.initialize().then((_) {
// Once the video has been loaded we play the video and set looping to true.
_controller.play();
_controller.setLooping(true);
// Ensure the first frame is shown after the video is initialized.
setState(() {});
});
}
@override
void dispose() {
super.dispose();
_controller.dispose();
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Stack(
children: <Widget>[
SizedBox.expand(
child: FittedBox(
// If your background video doesn't look right,try changing the BoxFit property.
// BoxFit.fill created the look I was going for.
fit: BoxFit.fill,child: SizedBox(
width: _controller.value.size?.width ?? 0,height: _controller.value.size?.height ?? 0,child: VideoPlayer(_controller),),Container(
child: Center(
child: Text('Hello!'),],);
}
}
问题是,如何使用Flutter Hooks实现此功能?我知道我必须使用useEffect()来实现initState()和dispose(),useFuture()以及useMemoized()来处理异步_controller.initialize()调用,还有什么可能呢?但是,我无法粘合它们以获得所需的结果。谁能告诉我上面代码的“使用挂钩”实现?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。