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