mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
fix: cached queue tracks expired stream
This commit is contained in:
parent
f7ca3a654f
commit
ed29ab5137
@ -237,6 +237,7 @@ class SpotubeTrack extends Track {
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
// super values
|
||||
"album": album?.toJson(),
|
||||
"artists": artists?.map((artist) => artist.toJson()).toList(),
|
||||
"availableMarkets": availableMarkets,
|
||||
@ -253,6 +254,7 @@ class SpotubeTrack extends Track {
|
||||
"trackNumber": trackNumber,
|
||||
"type": type,
|
||||
"uri": uri,
|
||||
// this values
|
||||
"ytTrack": ytTrack.toJson(),
|
||||
"ytUri": ytUri,
|
||||
"siblings": siblings.map((sibling) => sibling.toJson()).toList(),
|
||||
|
@ -46,9 +46,7 @@ class ProxyPlaylist {
|
||||
}
|
||||
|
||||
static Map<String, dynamic> _makeAppropriateTrackJson(Track track) {
|
||||
if (track is SpotubeTrack) {
|
||||
return track.toJson();
|
||||
} else if (track is LocalTrack) {
|
||||
if (track is LocalTrack) {
|
||||
return track.toJson();
|
||||
} else {
|
||||
return track.toJson();
|
||||
|
@ -44,6 +44,7 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
late final AudioServices notificationService;
|
||||
|
||||
UserPreferences get preferences => ref.read(userPreferencesProvider);
|
||||
ProxyPlaylist get playlist => state;
|
||||
BlackListNotifier get blacklist =>
|
||||
ref.read(BlackListNotifier.provider.notifier);
|
||||
|
||||
@ -96,7 +97,8 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
});
|
||||
|
||||
bool isPreSearching = false;
|
||||
audioPlayer.percentCompletedStream(60).listen((percent) async {
|
||||
|
||||
listenTo60Percent(percent) async {
|
||||
if (isPreSearching || audioPlayer.currentSource == null) return;
|
||||
try {
|
||||
isPreSearching = true;
|
||||
@ -130,7 +132,9 @@ class ProxyPlaylistNotifier extends PersistedStateNotifier<ProxyPlaylist>
|
||||
} finally {
|
||||
isPreSearching = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
audioPlayer.percentCompletedStream(60).listen(listenTo60Percent);
|
||||
|
||||
// player stops at 99% if nextSource is still not playable
|
||||
audioPlayer.percentCompletedStream(99).listen((_) async {
|
||||
|
@ -52,7 +52,7 @@ class MkPlayerWithState extends Player {
|
||||
await super.open(_playlist!.medias[_playlist!.index], play: true);
|
||||
} else {
|
||||
await next();
|
||||
await play();
|
||||
await Future.delayed(const Duration(milliseconds: 250), play);
|
||||
}
|
||||
}),
|
||||
streams.playlist.listen((event) {
|
||||
|
@ -239,7 +239,7 @@ class _MprisMediaPlayer2Player extends DBusObject {
|
||||
}());
|
||||
}
|
||||
|
||||
ProxyPlaylist get playlist => playlistNotifier.state;
|
||||
ProxyPlaylist get playlist => playlistNotifier.playlist;
|
||||
|
||||
void dispose() {
|
||||
dbus.unregisterObject(this);
|
||||
|
Loading…
Reference in New Issue
Block a user