mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
24 lines
633 B
Dart
24 lines
633 B
Dart
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:spotube/provider/Playback.dart';
|
|
|
|
useSyncedLyrics(WidgetRef ref, Map<int, String> lyricsMap) {
|
|
final player = ref.watch(playbackProvider.select(
|
|
(value) => (value.player),
|
|
));
|
|
final stream = player.onPositionChanged;
|
|
|
|
final currentTime = useState(0);
|
|
|
|
useEffect(() {
|
|
final lol = stream.listen((pos) {
|
|
if (lyricsMap.containsKey(pos.inSeconds)) {
|
|
currentTime.value = pos.inSeconds;
|
|
}
|
|
});
|
|
return () => lol.cancel();
|
|
}, [lyricsMap]);
|
|
|
|
return currentTime.value;
|
|
}
|