FLUTTER JUST_AUDIO Navigator.Pu sh не работает по окончании воспроизведения - PullRequest
0 голосов
/ 09 июля 2020

Я использую пакет Just_Audio. Он работает хорошо, однако теперь я хочу, чтобы, когда он закончил играть, если пользователь не заплатил, должен открыться экран оплаты.

Вот код:

void closeScreen() {


final _userHasPaid =
    Provider.of<User>(context, listen: false).user.testPaid;
print("USER PAID = ${_userHasPaid}");
if (_userHasPaid == false && widget.breathwork.breathType == "F") {
  print("got here");
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) {
        print(" and got here");
        return PaymentsScreen();
      },
    ),
  );
}

disposeAudio();
print("should pop now");
Navigator.pop(context);

}

До того, как я представил Navigator.pu sh, все работало нормально и закрывал экран с помощью Navigator.pop. Однако как только я добавляю код pu sh, я не получаю PaymentsScreen, а также Navigator.pop в конце больше не работает.

Я вижу распечатки на консоли для: print USER ПЛАТНАЯ печать, полученная здесь, печать должна появиться сейчас

Но не для: print got here.

Любая помощь будет очень признательна, спасибо

1 Ответ

1 голос
/ 09 июля 2020

вы не можете одновременно вызывать Navigator.pu sh и функцию pop, вам нужно go на страницу оплаты, затем вам нужно открыть оттуда, как только платеж будет сделан, и добавить disposeAudio ( ); функция перед ПУ sh на страницу оплаты

void closeScreen() {

disposeAudio();

final _userHasPaid =
    Provider.of<User>(context, listen: false).user.testPaid;
print("USER PAID = ${_userHasPaid}");
if (_userHasPaid == false && widget.breathwork.breathType == "F") {
  print("got here");
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) {
        print(" and got here");
        return PaymentsScreen();
      },
    ),
  );
}
...