Flutter 颤振按钮图标不随音频播放器更改

Flutter 颤振按钮图标不随音频播放器更改,flutter,radio,audio-player,Flutter,Radio,Audio Player,我正在尝试使用库制作一个广播应用程序,它确实从链接中获取广播流,并且一切正常,但当我尝试相应地更改播放/暂停按钮图标时,它根本不起作用,我尝试了两种方法: 1-使用库生成器: assetsAudioPlayer.builderCurrent( builder: (context, isPlaying){ return PlayerBuilder.isPlaying( player: assetsA

我正在尝试使用库制作一个广播应用程序,它确实从链接中获取广播流,并且一切正常,但当我尝试相应地更改播放/暂停按钮图标时,它根本不起作用,我尝试了两种方法:

1-使用库生成器:

assetsAudioPlayer.builderCurrent(
              builder: (context, isPlaying){
                return PlayerBuilder.isPlaying(
                    player: assetsAudioPlayer,
                    builder: (context, isPlaying) {
                      return RawMaterialButton(
                          constraints: BoxConstraints.expand(width: 70, height: 70),
                          fillColor: Constants.WHITE,
                          shape: CircleBorder(),
                          child: RadiantGradientMask(
                            child: Icon(isPlaying ? Icons.pause : Icons.play_arrow ,
                              size: 42,
                              color: Constants.WHITE,
                            ),
                            gradient: gradient,
                          ),
                          onPressed: (){
                            assetsAudioPlayer.playOrPause();
                          }
                          );
                    });
              }
          ),
2-使用普通按钮、布尔值和设置状态:

RawMaterialButton(
            constraints: BoxConstraints.expand(width: 70, height: 70),
            fillColor: Constants.WHITE,
            shape: CircleBorder(),
            child: RadiantGradientMask(
              child: Icon(isPlaying ? Icons.pause : Icons.play_arrow ,
                size: 42,
                color: Constants.WHITE,
              ),
              gradient: gradient,
            ),
            onPressed: (){
              assetsAudioPlayer.playOrPause();
              setState(() {
                isPlaying = assetsAudioPlayer.isPlaying.value;
              });
            },
在第一种方法中,库开始播放流媒体,但图标一点也不改变(暂停/播放),在第二种方法中,图标确实改变,但在按下按钮数次后,它会出现故障,“播放”变为“暂停”,“暂停”变为“播放”(反转)


你知道如何让它正常工作吗?

方法调用
assetsAudioPlayer.playOrPause()
是异步的,
setState({})是同步的。
您正在检查状态是否同步更改,但是否异步更改,需要等待
playOrPause()
方法