mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 15:23:00 +00:00 
			
		
		
		
	Fix player resume
This commit is contained in:
		| @@ -187,6 +187,7 @@ public abstract class BasePlayer implements | ||||
|     protected MediaSessionManager mediaSessionManager; | ||||
|  | ||||
|     private boolean isPrepared = false; | ||||
|     private Disposable stateLoader; | ||||
|  | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|  | ||||
| @@ -283,16 +284,14 @@ public abstract class BasePlayer implements | ||||
|                 ) { | ||||
|             simpleExoPlayer.seekTo(playQueue.getIndex(), queue.getItem().getRecoveryPosition()); | ||||
|             return; | ||||
|  | ||||
|         } else if (intent.getBooleanExtra(RESUME_PLAYBACK, false) && isPlaybackResumeEnabled()) { | ||||
|             final PlayQueueItem item = queue.getItem(); | ||||
|             if (item != null && item.getRecoveryPosition() == PlayQueueItem.RECOVERY_UNSET && isPlaybackResumeEnabled()) { | ||||
|                 final Disposable stateLoader = recordManager.loadStreamState(item) | ||||
|             if (item != null && item.getRecoveryPosition() == PlayQueueItem.RECOVERY_UNSET) { | ||||
|                 stateLoader = recordManager.loadStreamState(item) | ||||
|                         .observeOn(AndroidSchedulers.mainThread()) | ||||
|                         .doFinally(() -> { | ||||
|                             if (simpleExoPlayer == null) return; // doFinally called while closing | ||||
|                             initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence, | ||||
|                                     /*playOnInit=*/true); | ||||
|                         }) | ||||
|                         .doFinally(() -> initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence, | ||||
|                                 /*playOnInit=*/true)) | ||||
|                         .subscribe( | ||||
|                                 state -> queue.setRecovery(queue.getIndex(), state.getProgressTime()), | ||||
|                                 error -> { | ||||
| @@ -334,13 +333,13 @@ public abstract class BasePlayer implements | ||||
|             simpleExoPlayer.removeListener(this); | ||||
|             simpleExoPlayer.stop(); | ||||
|             simpleExoPlayer.release(); | ||||
|             simpleExoPlayer = null; | ||||
|         } | ||||
|         if (isProgressLoopRunning()) stopProgressLoop(); | ||||
|         if (playQueue != null) playQueue.dispose(); | ||||
|         if (audioReactor != null) audioReactor.dispose(); | ||||
|         if (playbackManager != null) playbackManager.dispose(); | ||||
|         if (mediaSessionManager != null) mediaSessionManager.dispose(); | ||||
|         if (stateLoader != null) stateLoader.dispose(); | ||||
|  | ||||
|         if (playQueueAdapter != null) { | ||||
|             playQueueAdapter.unsetSelectedListener(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Stypox
					Stypox