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