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)
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