#android-studio #flutter #dart
#android-studio #флаттер #dart
Вопрос:
Я пытаюсь создать аудиоплеер, но у меня проблемы с поиском ползунка для текущей продолжительности песни, спасибо,
@override
void initState() {
super.initState();
player.onAudioPositionChanged.listen((Duration duration) {
setState(() {
currenttime = duration;
});
});
player.onDurationChanged.listen((Duration duration) {
setState(() {
totaltime = duration;
});
});
}
это виджет-слайдер, который фиксирует ТЕКУЩЕЕ И ОБЩЕЕ ВРЕМЯ.
Slider(
value: currenttime.inSeconds.toDouble(),
max: totaltime.inSeconds.toDouble(),
min: 0.0,
activeColor: mycolor,
inactiveColor: Colors.grey,
onChanged: (double value) {
setState(() {
int second = value.toInt();
Duration seeked = Duration(seconds: second);
player.seek(seeked);
value = value;
});
}),
И это ошибка
═╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building MyApp(dirty, state: _MyAppState#8e9ee):
The getter 'inSeconds' was called on null.
Receiver: null
Tried calling: inSeconds
Комментарии:
1. Похоже, что это null попробуйте отладить значение, и вы узнаете
2. @OMiShah как отлаживать? извините, если это было глупо.
3. Я имел в виду, попробуйте напечатать значение этой переменной. Скорее всего, вы пытаетесь преобразовать нулевую переменную еще до ее инициализации, что вызывает проблему
Ответ №1:
Используйте троичный оператор, currenttime
который изначально кажется нулевым, или выясните, почему он становится нулевым.
Slider(
value: currenttime != null? currenttime.inSeconds.toDouble() : 0.0,