我正在使用 Flutter 的插件来播放从我的应用程序中Just-Audio
获取的 mp3 文件。streambuilder
返回函数所需文件的streambuilder
持续时间 setClip
;
player.setClip(start: Duration(milliseconds: 0), end: Duration(milliseconds: 10);
而不是“10”,“结束”点应该是文件的持续时间减去 500 毫秒。所以我的initState
;中有这个流监听器。
@override
void initState() {
super.initState();
_init();
}
Future<void> _init() async {
await player.setUrl('https://bucket.s3.amazonaws.com/example.mp3');
player.durationStream.listen((event) {
int newevent = event.inMilliseconds;
});
await player.setClip(start: Duration(milliseconds: 0), end: newevent);
}
但我需要将获取的持续时间转换为整数才能起飞 500 毫秒。不幸的是,int newevent = event.inMilliseconds;
抛出以下错误;
A value of type 'int' can't be assigned to a variable of type 'Duration?'. Try changing the type of the variable, or casting the right-hand type to 'Duration?'.
我试过这个;
int? newevent = event?.inMilliseconds;
接着;
await player.setClip(start: Duration(milliseconds: 0), end: Duration(milliseconds: newevent));
但是后来我在下面得到了这个红线错误milliseconds: newevent
;
The argument type 'Duration?' can't be assigned to the parameter type 'int'.
那么如何从我的流监听器中获取我的持续时间作为整数,以便我可以将它用作中的端点player.setClip
?