mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-12 23:45:18 +00:00
24 lines
685 B
Dart
24 lines
685 B
Dart
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:spotube/provider/AudioPlayer.dart';
|
|
|
|
useSyncedLyrics(WidgetRef ref, Map<int, String> lyricsMap) {
|
|
final player = ref.watch(audioPlayerProvider);
|
|
final stream = player.positionStream.isBroadcast
|
|
? player.positionStream
|
|
: player.positionStream.asBroadcastStream();
|
|
|
|
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;
|
|
}
|