将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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...