FLUTTER JUST_AUDIO Navigator.Push 完成播放后无法正常工作

FLUTTER JUST_AUDIO Navigator.Push not working when finished play

我正在使用包 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.push 之前一切正常,并使用 Navigator.pop 关闭屏幕。但是,一旦我添加了推送代码,我就没有得到 PaymentsScreen,最后的 Navigator.pop 也不再有效。

我确实看到打印到控制台的内容: 打印用户付费 打印到这里 打印现在应该弹出

但不适用于: 打印到这里。

非常感谢任何帮助,谢谢

你不能同时调用Navigator.push和pop函数,你必须去支付页面然后你必须在支付完成后从那里弹出,并添加disposeAudio() ;推送到支付页面之前的功能

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();
      },
    ),
  );
}