Merge branch 'prevent-stutter-for-audio-sources' into 'master'

audio background stutter fix

See merge request videostreaming/grayjay!96
This commit is contained in:
Kai DeLorenzo 2025-04-18 15:39:55 +00:00
commit dc422eafce
2 changed files with 9 additions and 6 deletions

View file

@ -446,7 +446,7 @@ class VideoDetailFragment() : MainFragment() {
val viewDetail = _viewDetail;
Logger.i(TAG, "onUserLeaveHint preventPictureInPicture=${viewDetail?.preventPictureInPicture} isCasting=${StateCasting.instance.isCasting} isBackgroundPictureInPicture=${Settings.instance.playback.isBackgroundPictureInPicture()} allowBackground=${viewDetail?.allowBackground}");
if(viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground) {
if(viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground && !viewDetail.audioOnly) {
_leavingPiP = false;
val params = _viewDetail?.getPictureInPictureParams();

View file

@ -194,6 +194,8 @@ class VideoDetailView : ConstraintLayout {
val currentUrl get() = video?.url ?: _searchVideo?.url ?: _url;
val audioOnly get() = _lastVideoSource == null;
private var _liveChat: LiveChatManager? = null;
private var _videoResumePositionMilliseconds : Long = 0L;
@ -1084,14 +1086,15 @@ class VideoDetailView : ConstraintLayout {
if(StateCasting.instance.isCasting)
return;
if(allowBackground)
StatePlayer.instance.startOrUpdateMediaSession(context, video);
else {
if (allowBackground) {
StatePlayer.instance.startOrUpdateMediaSession(context, video)
} else {
when (Settings.instance.playback.backgroundPlay) {
0 -> handlePause();
1 -> {
if(!(video?.isLive ?: false) && Settings.instance.playback.backgroundSwitchToAudio)
_player.switchToAudioMode();
if (video?.isLive != true && Settings.instance.playback.backgroundSwitchToAudio && audioOnly) {
_player.switchToAudioMode()
}
StatePlayer.instance.startOrUpdateMediaSession(context, video);
}
}