Fix android auto next ep

release
FongMi 2 weeks ago
parent 07c9a45a39
commit 092b82e001
  1. 10
      app/src/leanback/java/com/fongmi/android/tv/service/DLNARendererService.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/player/PlayerManager.java
  3. 10
      app/src/main/java/com/fongmi/android/tv/service/PlaybackService.java

@ -144,7 +144,7 @@ public class DLNARendererService extends AndroidUpnpServiceImpl implements Servi
private void cleanupPlaybackRefs() {
App.removeCallbacks(positionUpdater);
if (currentListenerPlayer != null) {
currentListenerPlayer.removeListener(playerListener);
currentListenerPlayer.removeListener(listener);
currentListenerPlayer = null;
}
if (playbackService != null) {
@ -195,7 +195,7 @@ public class DLNARendererService extends AndroidUpnpServiceImpl implements Servi
player = playbackService.player();
avTransportImpl.setPlayerManager(player);
currentListenerPlayer = player.getPlayer();
currentListenerPlayer.addListener(playerListener);
currentListenerPlayer.addListener(listener);
App.post(positionUpdater, 1000);
}
@ -228,7 +228,7 @@ public class DLNARendererService extends AndroidUpnpServiceImpl implements Servi
}
};
private final Player.Listener playerListener = new Player.Listener() {
private final Player.Listener listener = new Player.Listener() {
@Override
public void onPlaybackStateChanged(int playbackState) {
notifyState();
@ -243,9 +243,9 @@ public class DLNARendererService extends AndroidUpnpServiceImpl implements Servi
private final PlaybackService.PlayerCallback playerCallback = new PlaybackService.PlayerCallback() {
@Override
public void onPlayerRebuild(Player newPlayer) {
if (currentListenerPlayer != null) currentListenerPlayer.removeListener(playerListener);
if (currentListenerPlayer != null) currentListenerPlayer.removeListener(listener);
currentListenerPlayer = newPlayer;
newPlayer.addListener(playerListener);
newPlayer.addListener(listener);
}
};

@ -41,8 +41,6 @@ import master.flame.danmaku.ui.widget.DanmakuView;
public class PlayerManager implements ParseCallback {
public static final String TAG = PlayerManager.class.getSimpleName();
private final Runnable runnable;
private final Callback callback;
private PlayerEngine engine;

@ -80,6 +80,7 @@ public class PlaybackService extends MediaLibraryService implements MediaLibrary
running = true;
player = new PlayerManager(this);
exoPlayer = player.getPlayer();
exoPlayer.addListener(listener);
session = new MediaLibrarySession.Builder(this, wrap(exoPlayer), this).build();
session.setSessionActivity(buildDefaultIntent());
EventBus.getDefault().register(this);
@ -420,11 +421,20 @@ public class PlaybackService extends MediaLibraryService implements MediaLibrary
@Override
public void onPlayerRebuild(Player newPlayer) {
exoPlayer.removeListener(listener);
exoPlayer = newPlayer;
exoPlayer.addListener(listener);
if (session != null) session.setPlayer(wrap(newPlayer));
playerCallbacks.forEach(callback -> callback.onPlayerRebuild(newPlayer));
}
private final Player.Listener listener = new Player.Listener() {
@Override
public void onPlaybackStateChanged(int state) {
if (state == Player.STATE_ENDED && !(hasNavigationCallback() && isNavigationOwner())) navigateItem(1);
}
};
@NonNull
@Override
public ListenableFuture<LibraryResult<MediaItem>> onGetLibraryRoot(@NonNull MediaLibrarySession session, @NonNull MediaSession.ControllerInfo browser, @Nullable MediaLibraryService.LibraryParams params) {

Loading…
Cancel
Save