微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每当我在flutter中导航其他屏幕时如何管理视频控制器

如何解决每当我在flutter中导航其他屏幕时如何管理视频控制器

嗨,我想我的主屏幕等功能是启动屏幕,如果用户单击“被注视”按钮(位于启动屏幕上),它将导航到另一个页面(在我的情况下,另一个屏幕是登录屏幕) ),或者如果用户不想点击“开始显示”按钮,则6秒钟后。它将导航到另一个屏幕(在我的情况下,另一个屏幕是登录屏幕)我已经完成了这一部分,但是主要的问题出现在这里,当我单击“获取注视”按钮,然后继续播放视频时,它正在导航,但是我如何管理它问题 这是针对同一问题的github存储库,请修复此https://github.com/RitikRD/video22

import 'dart:async';
import 'package:Flutter/material.dart';
import 'package:video22/animation/FadeAnimation.dart';
import 'package:video22/screens/login.dart';
import 'package:video_player/video_player.dart';

class Splash extends StatefulWidget {
  @override
  _SplashPageState createState() => _SplashPageState();
}

class _SplashPageState extends State<Splash> {
  VideoPlayerController _controller;
  @override
  void initState(){
    super.initState();
    Timer(Duration(seconds: 6),() => Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) => Login())));
    _controller = VideoPlayerController.asset('assets/Intro_Large.mp4')
    ..initialize().then((_) {
      setState(()  {

      });
    });
    _controller.play();
    _controller.setVolume(100.0);
  }
  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: _onBackpressed,child: Scaffold(
          body: Stack(
            fit: StackFit.expand,children: <Widget>[
              new Container(
                  child: _controller.value.initialized ? AspectRatio(aspectRatio: _controller.value.aspectRatio,child: VideoPlayer(_controller),)
                  : Container(),),Column(
                mainAxisAlignment: MainAxisAlignment.end,children: <Widget> [
                  new Container(child: GestureDetector(
                    onTap: () {Navigator.push(context,MaterialPageRoute(builder: (context) => new Login()));
    },child: Text('Get Started',style: TextStyle(color: Colors.white,fontSize: 20.0,fontFamily: 'Pacifico'),)),new Container(
                    child: Text("LYF Line",style: TextStyle(fontSize: 68.0,color: Colors.white,SizedBox(height: 60.0,],)
            ],);
  }
  Future<bool> _onBackpressed() {
    return showDialog(
      context: context,builder: (context) => new AlertDialog(
        title: new Text('Are you sure?'),content: new Text('Do you want to exit an App'),actions: <Widget>[
          new GestureDetector(
            onTap: () => Navigator.of(context).pop(false),child: Text("NO"),SizedBox(height: 16),new GestureDetector(
            onTap: () {
              _controller.pause();
              Navigator.of(context).pop(true);},child: Text("YES"),) ?? false;
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。