icefields / Power-Ampache-2

Android Music Streaming App suite in Material You style.
 Connects to Ampache, Nextcloud Music and compatible backends (Ampache API 4 and above).
https://power.ampache.dev
GNU General Public License v3.0
73 stars 5 forks source link

when session expires during playback, cannot bind to service once session refreshed #35

Closed icefields closed 7 months ago

icefields commented 8 months ago

This is an edge case, session should not expire during playback (I forced the session refresh calling action=goodbye with postman while listening to a playlist)

when session expires during playback, cannot bind to service once session refreshed

SimpleMediaServiceHandler.onIsLoadingChanged(161)   STATE_isLoading **** true
2024-02-03 13:45:47.956  9482-9482  lucie                   luci.sixsixsix.powerampache2.debug   D  MainViewModel.onEvent.2(266)    MainEvent.Play **** Song(mediaId=9557, title=Presage, album=MusicAttribute(id=1195, name=Legend), artist=MusicAttribute(id=353, name=Exocrine), albumArtist=MusicAttribute(id=353, name=Exocrine), songUrl=https://tari.ddns.net/play/index.php?ssid=56567d3be26afd34eb96ec0a040ad905&type=song&oid=9557&uid=3&player=api&name=Exocrine%20-%20Presage.mp3, imageUrl=https://tari.ddns.net/image.php?object_id=1195&object_type=album&name=art.jpg, bitrate=320097, streamBitrate=320097, catalog=30, channels=2, composer=, filename=/Music-Collections/Soul/Exocrine/Legend/01 - Presage.mp3, genre=[MusicAttribute(id=85, name=Металл)], mime=audio/mpeg, playCount=1, playlistTrackNumber=1, rateHz=44100, size=3536272, time=85, trackNumber=1, year=2024, name=Presage, mode=cbr, artists=[MusicAttribute(id=353, name=Exocrine)], flag=0, streamFormat=mp3, format=mp3, streamMime=audio/mpeg, publisher=Season of Mist, replayGainTrackGain=null, replayGainTrackPeak=null, disk=1, diskSubtitle=, mbId=66ca7c36-98b9-4360-a74b-5ba0678709f4, comment=, language=, lyrics=, albumMbId=, artistMbId=, albumArtistMbId=, averageRating=-1.0, preciseRating=-1.0, rating=-1.0) **** https://tari.ddns.net/server//json.server.php?action=stream&auth=56567d3be26afd34eb96ec0a040ad905&type=song&id=9557
2024-02-03 13:45:47.982  9482-9482  lucie                   luci.sixsixsix.powerampache2.debug   D  SimpleMediaServiceHandler.onPlayerEvent(85) ForcePlay(mediaItem=androidx.media3.common.MediaItem@d9502321)
2024-02-03 13:45:48.016  9482-9482  AndroidRuntime          luci.sixsixsix.powerampache2.debug   D  Shutting down VM
2024-02-03 13:45:48.025  9482-9482  AndroidRuntime          luci.sixsixsix.powerampache2.debug   E  FATAL EXCEPTION: main
                                                                                                    Process: luci.sixsixsix.powerampache2.debug, PID: 9482
                                                                                                    java.lang.RuntimeException: Unable to bind to service luci.sixsixsix.powerampache2.player.SimpleMediaService@fd96529 with Intent { act=android.media.browse.MediaBrowserService cmp=luci.sixsixsix.powerampache2.debug/luci.sixsixsix.powerampache2.player.SimpleMediaService }: java.lang.IllegalArgumentException: session is already released
                                                                                                        at android.app.ActivityThread.handleBindService(ActivityThread.java:4572)
                                                                                                        at android.app.ActivityThread.access$1800(ActivityThread.java:256)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2114)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                        at android.os.Looper.loop(Looper.java:288)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7842)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
                                                                                                    Caused by: java.lang.IllegalArgumentException: session is already released
                                                                                                        at androidx.media3.common.util.Assertions.checkArgument(Assertions.java:55)
                                                                                                        at androidx.media3.session.MediaSessionService.addSession(MediaSessionService.java:263)
                                                                                                        at androidx.media3.session.MediaSessionService.onBind(MediaSessionService.java:388)
                                                                                                        at android.app.ActivityThread.handleBindService(ActivityThread.java:4557)
                                                                                                        at android.app.ActivityThread.access$1800(ActivityThread.java:256) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2114) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201) 
                                                                                                        at android.os.Looper.loop(Looper.java:288) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7842) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
2024-02-03 13:45:48.026  9482-9482  ACRA                    luci.sixsixsix.powerampache2.debug   E  ACRA caught a RuntimeException for luci.sixsixsix.powerampache2.debug
                                                                                                    java.lang.RuntimeException: Unable to bind to service luci.sixsixsix.powerampache2.player.SimpleMediaService@fd96529 with Intent { act=android.media.browse.MediaBrowserService cmp=luci.sixsixsix.powerampache2.debug/luci.sixsixsix.powerampache2.player.SimpleMediaService }: java.lang.IllegalArgumentException: session is already released
                                                                                                        at android.app.ActivityThread.handleBindService(ActivityThread.java:4572)
                                                                                                        at android.app.ActivityThread.access$1800(ActivityThread.java:256)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2114)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                        at android.os.Looper.loop(Looper.java:288)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7842)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
                                                                                                    Caused by: java.lang.IllegalArgumentException: session is already released
                                                                                                        at androidx.media3.common.util.Assertions.checkArgument(Assertions.java:55)
                                                                                                        at androidx.media3.session.MediaSessionService.addSession(MediaSessionService.java:263)
                                                                                                        at androidx.media3.session.MediaSessionService.onBind(MediaSessionService.java:388)
                                                                                                        at android.app.ActivityThread.handleBindService(ActivityThread.java:4557)
                                                                                                        at android.app.ActivityThread.access$1800(ActivityThread.java:256) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2114) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201) 
                                                                                                        at android.os.Looper.loop(Looper.java:288) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7842) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
icefields commented 7 months ago

solved on 0.15-beta