jarnedemeulemeester / findroid

Third-party native Jellyfin Android app
GNU General Public License v3.0
2.69k stars 167 forks source link

Playback end not being reported when using skip back / forward buttons. #872

Open loafeyee opened 4 weeks ago

loafeyee commented 4 weeks ago

Describe your issue

Whilst viewing a series and skipping to the next item using the previous item and next item buttons, the previous item isn't reported as "stopped".

Steps to reproduce

  1. Play an episode from a series, ensure there's a proceeding episode after it.
  2. Skip to next episode using the skip forwards button.

Expected behavior

Playback needs to be reported by the app when skipping, and where it stopped. Otherwise, certain plugins may break.

In the logs, it should say something along the lines of:

Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Findroid "X.XX.X" playing "SomeShow". Stopped at "XXXX" ms

Screenshots

Skipping to next episode doesn't show it being "stopped" in logs

bugreport

Player

mpv

Additional context

Complete Fix for issue #340 Related to #869

Basically the same issue, only except with the next / previous media buttons

I am running Windows Version of Jellyfin Server 10.10.0

Jellyfin Android App (Skipping onto the next episode):

##### Client info
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "XX.XX.XX.XX"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "32490065f090990b064ab3ac6d102e4f"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "85272e272daf44c593c109028af204f6"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 13
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = "32490065f090990b064ab3ac6d102e4f"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "85272e272daf44c593c109028af204f6"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "Transcode (v:h264 a:direct)"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Jellyfin Android"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "User's Phone"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Love, Chunibyo & Other Delusions! - s01e06 - The Atoned... Innocent"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "32490065f090990b064ab3ac6d102e4f"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Episode"
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
##### Playing Video
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : "cd2d5b3ea14f9569-85272e272daf44c593c109028af204f6-32490065f090990b064ab3ac6d102e4f"
##### Skipping to next episode
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[60] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
[57] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : "cd2d5b3ea14f9569-85272e272daf44c593c109028af204f6-32490065f090990b064ab3ac6d102e4f"
[12] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for "C:\ProgramData\Jellyfin\Server\transcodes\06710985744292842d1007a2ab6d2ac1.m3u8"
[12] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[12] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "C:\ProgramData\Jellyfin\Server\transcodes\06710985744292842d1007a2ab6d2ac1.m3u8"
##### Playback still reported when skipped!
[18] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Android" "2.6.2" playing "The Atoned... Innocent". Stopped at "85395" ms
##### Sync plugin working...
[60] jellyfin_ani_sync.UpdateProviderStatus: The user 85272e27-2daf-44c5-93c1-09028af204f6 does not exist in the plugins config file. Skipping

Runs fine, correctly reporting when it stopped and triggering the sync plugin.

However, in Findroid...

Findroid App (Skipping onto the next episode):

##### Client Info
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : "XXX.XX.X.XXX"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = "32490065f090990b064ab3ac6d102e4f"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = "85272e272daf44c593c109028af204f6"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 13
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = "bcc311fd59b7ca240874d51e19753f5a"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = "85272e272daf44c593c109028af204f6"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = "DirectPlay"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = "Findroid Debug"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = "User's Phone"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = "Love, Chunibyo & Other Delusions! - s01e06 - The Atoned... Innocent"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = "32490065f090990b064ab3ac6d102e4f"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = "Episode"
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Details do not match for play item
##### Skipping didn't report playback!
[38] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
##### Sync plugin not responding...

doesn't report its playback once stopped. Hence, breaking the list sync plugin.

As long as Findroid reports its playback location when it stops (regardless of location when skipping), Jellyfin Server, and its respective plugins, will respond accordingly as if it were finished completely.

Tested with multiple shows and episodes. Same result.

Device

Samsung Galaxy S24 U

Android version

14

App version

v0.15.3

Jellyfin version

10.10.0