Не могу использовать AnimatedCrossFade с локальным Mov файл Flutter - PullRequest
0 голосов
/ 12 января 2020

У меня есть файл .Mov, который я хочу использовать в AnimatedCrossFade, но я не могу заставить видео работать с замиранием. Я получаю черный экран, и перекрестное затухание никогда не происходит. Вот мой код:

  VideoPlayerController _buddiesAnimatedController;
  Future<void> _initializeVideoPlayerFuture;
  bool firstStateEnabled = true;
AnimatedCrossFade(
          firstChild: _showBuddiesLogo(),
          secondChild: _signIn(),
          duration: Duration(seconds: 3),
          crossFadeState: firstStateEnabled
              ? CrossFadeState.showFirst
              : CrossFadeState.showSecond,
              firstCurve: Curves.easeOut,
              secondCurve: Curves.easeIn,
              sizeCurve: Curves.bounceIn,
        ),

Состояние инициализации

@override
  void initState() {
    _buddiesAnimatedController = VideoPlayerController.asset('assets/BuddiesLogo.mov');
    _initializeVideoPlayerFuture = _buddiesAnimatedController.initialize();
    _buddiesAnimatedController.setLooping(false);

    super.initState();
  }

FirstChild

  Widget _showBuddiesLogo() {
    return FutureBuilder(
      future: _initializeVideoPlayerFuture,
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.done) {

          return AspectRatio(
            aspectRatio: _buddiesAnimatedController.value.aspectRatio,
            child: VideoPlayer(_buddiesAnimatedController),
          );
        }  else{
          return CircularProgressIndicator();
        }
      },
    );
  }

Второй ребенок

Container(
child:    Column(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: <Widget>[
                        RaisedButton(
                          splashColor: Colors.greenAccent,
                          elevation: 8.0,

                          color: buddiesGreen,
                          child: Container(
                            width: 100,
                            child: Center(
                              child: Text(
                                'Sign In',
                                style: TextStyle(
                                    color: Colors.white, fontFamily: 'Roboto'),
                              ),
                            ),
                          ), //`Text` to display
                          shape: StadiumBorder(),
                          onPressed: () {
                            Navigator.of(context).pushReplacement(
                                MaterialPageRoute(
                                    builder: (BuildContext context) =>
                                        SignIn()));
                          },
                        ),
                        SizedBox(
                          width: 15,
                        ),
                        RaisedButton(
                            highlightColor: Colors.greenAccent,
                            splashColor: Colors.greenAccent,
                            elevation: 10.0,
                            color: Colors.white,
                            child: Container(
                              width: 100,
                              child: Center(
                                child: Text(
                                  'Sign Up',
                                  style: TextStyle(fontFamily: 'Roboto'),
                                ),
                              ),
                            ), //`Text` to display
                            shape: StadiumBorder(),
                            onPressed: () {
                              Navigator.of(context).pushReplacement(
                                  MaterialPageRoute(
                                      builder: (BuildContext context) =>
                                          Walkthrough()));
                            }),
                      ],
                    ),

После просмотра круговой индикатор прогресса, экран становится черным. Я объявил видео в своем файле yaml и импортировал импортный пакет: video_player / video_player.dart; на страницу. Проверено правильное наименование. Я хочу, чтобы анимация воспроизводилась, а затем появился второй экран с кнопками входа в систему. Любая помощь будет оценена

...