mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 01:53:31 +00:00
fix: playlist selection working now
This commit is contained in:
parent
2e29e9537a
commit
5a6d101bdf
1 changed files with 19 additions and 5 deletions
|
|
@ -11,6 +11,7 @@ import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.Player;
|
import androidx.media3.common.Player;
|
||||||
|
import androidx.media3.common.Timeline;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.session.MediaBrowser;
|
import androidx.media3.session.MediaBrowser;
|
||||||
import androidx.media3.session.SessionToken;
|
import androidx.media3.session.SessionToken;
|
||||||
|
|
@ -177,11 +178,24 @@ public class MediaManager {
|
||||||
mediaBrowserListenableFuture.addListener(() -> {
|
mediaBrowserListenableFuture.addListener(() -> {
|
||||||
try {
|
try {
|
||||||
if (mediaBrowserListenableFuture.isDone()) {
|
if (mediaBrowserListenableFuture.isDone()) {
|
||||||
mediaBrowserListenableFuture.get().clearMediaItems();
|
MediaBrowser browser = mediaBrowserListenableFuture.get();
|
||||||
mediaBrowserListenableFuture.get().setMediaItems(MappingUtil.mapMediaItems(media));
|
browser.clearMediaItems();
|
||||||
mediaBrowserListenableFuture.get().prepare();
|
browser.setMediaItems(MappingUtil.mapMediaItems(media));
|
||||||
mediaBrowserListenableFuture.get().seekTo(startIndex, 0);
|
browser.prepare();
|
||||||
mediaBrowserListenableFuture.get().play();
|
|
||||||
|
Player.Listener timelineListener = new Player.Listener() {
|
||||||
|
@Override
|
||||||
|
public void onTimelineChanged(Timeline timeline, int reason) {
|
||||||
|
int itemCount = browser.getMediaItemCount();
|
||||||
|
if (itemCount > 0 && startIndex >= 0 && startIndex < itemCount) {
|
||||||
|
browser.seekTo(startIndex, 0);
|
||||||
|
browser.play();
|
||||||
|
browser.removeListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
browser.addListener(timelineListener);
|
||||||
|
|
||||||
enqueueDatabase(media, true, 0);
|
enqueueDatabase(media, true, 0);
|
||||||
}
|
}
|
||||||
} catch (ExecutionException | InterruptedException e) {
|
} catch (ExecutionException | InterruptedException e) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue