spotube icon indicating copy to clipboard operation
spotube copied to clipboard

Very slow reaction to user input (Android version)

Open glanduin opened this issue 1 year ago • 6 comments

Is there an existing issue for this? (Please read the description)

  • [X] I have searched the existing issues

Current Behavior

I log in to Spotify within the app to access my favorite artists (this is probably the only app that i can do this). I go to the artist page and select an album and press "play". The playback starts after a long loading period, around 10 seconds. Skipping songs is pretty much the same story, it takes too long. Other similar apps utilizing youtube for playback is quite fast in their response time to such inputs.

Expected Behavior

I would expect the app's response to my inputs to be faster, at least as fast as other similar android apps utilizing youtube for playing music.

Steps to reproduce

  1. Open the app
  2. Select an artist
  3. Select an album
  4. Press play

Logs

y_box.dart:111)
#784    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#785    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#786    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#787    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#788    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#789    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#790    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#791    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#792    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#793    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#794    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#795    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#796    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#797    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#798    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#799    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3726)
#800    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#801    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111)
#802    RenderObject.layout (package:flutter/src/rendering/object.dart:2608)
#803    _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1002)
#804    _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1311)
#805    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2446)
#806    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1052)
#807    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1065)
#808    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:602)
#809    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1164)
#810    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468)
#811    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397)
#812    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318)
#813    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176)
#814    _rootRun (dart:async/zone.dart:1399)
#815    _CustomZone.run (dart:async/zone.dart:1301)
#816    _CustomZone.runGuarded (dart:async/zone.dart:1209)
#817    _invoke (dart:ui/hooks.dart:314)
#818    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419)
#819    _drawFrame (dart:ui/hooks.dart:283)

----------------------------------------
[2024-11-24 22:18:42.323501]---------------------
Error Code: 401
Valid user authentication required
#0      SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:282)
#1      SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
<asynchronous suspension>
#2      SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
<asynchronous suspension>
#3      CursorPages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:292)
<asynchronous suspension>
#4      SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
<asynchronous suspension>

----------------------------------------
[2024-11-24 22:18:43.364286]---------------------
NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("__typename")
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:38)
#1      _objectNoSuchMethod (dart:core-patch/object_patch.dart:85)
#2      transformSectionItemTypeJsonMap (package:spotube/models/spotify/home_feed.dart:174)
#3      transformSectionItemJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:220)
#4      MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#5      ListIterator.moveNext (dart:_internal/iterable.dart:354)
#6      WhereIterator.moveNext (dart:_internal/iterable.dart:450)
#7      new _GrowableList._ofOther (dart:core-patch/growable_array.dart:202)
#8      new _GrowableList.of (dart:core-patch/growable_array.dart:152)
#9      new List.of (dart:core-patch/array_patch.dart:39)
#10     Iterable.toList (dart:core/iterable.dart:498)
#11     transformSectionItemJsonMap (package:spotube/models/spotify/home_feed.dart:229)
#12     transformHomeFeedJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:241)
#13     MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#14     ListIterator.moveNext (dart:_internal/iterable.dart:354)
#15     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
#16     new _GrowableList.of (dart:core-patch/growable_array.dart:150)
#17     new List.of (dart:core-patch/array_patch.dart:39)
#18     ListIterable.toList (dart:_internal/iterable.dart:224)
#19     transformHomeFeedJsonMap (package:spotube/models/spotify/home_feed.dart:244)
#20     CustomSpotifyEndpoints.getHomeFeed (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:164)
<asynchronous suspension>
#21     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-24 22:18:43.384080]---------------------
NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("__typename")
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:38)
#1      _objectNoSuchMethod (dart:core-patch/object_patch.dart:85)
#2      transformSectionItemTypeJsonMap (package:spotube/models/spotify/home_feed.dart:174)
#3      transformSectionItemJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:220)
#4      MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#5      ListIterator.moveNext (dart:_internal/iterable.dart:354)
#6      WhereIterator.moveNext (dart:_internal/iterable.dart:450)
#7      new _GrowableList._ofOther (dart:core-patch/growable_array.dart:202)
#8      new _GrowableList.of (dart:core-patch/growable_array.dart:152)
#9      new List.of (dart:core-patch/array_patch.dart:39)
#10     Iterable.toList (dart:core/iterable.dart:498)
#11     transformSectionItemJsonMap (package:spotube/models/spotify/home_feed.dart:229)
#12     transformHomeFeedJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:241)
#13     MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#14     ListIterator.moveNext (dart:_internal/iterable.dart:354)
#15     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
#16     new _GrowableList.of (dart:core-patch/growable_array.dart:150)
#17     new List.of (dart:core-patch/array_patch.dart:39)
#18     ListIterable.toList (dart:_internal/iterable.dart:224)
#19     transformHomeFeedJsonMap (package:spotube/models/spotify/home_feed.dart:244)
#20     CustomSpotifyEndpoints.getHomeFeed (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:164)
<asynchronous suspension>
#21     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-24 22:19:31.639221]---------------------
Error Code: 400
Invalid base62 id
#0      SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:282)
#1      SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
<asynchronous suspension>
#2      SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
<asynchronous suspension>
#3      Me.checkFollowing (package:spotify/src/endpoints/me.dart:61)
<asynchronous suspension>
#4      albumsIsSavedProvider.<anonymous closure>.<anonymous closure> (package:spotube/provider/spotify/album/is_saved.dart:7)
<asynchronous suspension>
#5      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

----------------------------------------
[2024-11-24 22:22:26.550504]---------------------
[MediaKitError] 
Option af: dynaudnorm doesn't exist.
#0      new CustomPlayer.<anonymous closure> (package:spotube/services/audio_player/custom_player.dart:51)
#1      _rootRunUnary (dart:async/zone.dart:1407)
#2      _CustomZone.runUnary (dart:async/zone.dart:1308)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#5      _DelayedData.perform (dart:async/stream_impl.dart:541)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:646)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:617)
#8      _rootRun (dart:async/zone.dart:1391)
#9      _CustomZone.run (dart:async/zone.dart:1301)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#12     _rootRun (dart:async/zone.dart:1399)
#13     _CustomZone.run (dart:async/zone.dart:1301)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
[2024-11-24 22:22:26.581416]---------------------
Option af: dynaudnorm doesn't exist.
#0      new AudioPlayerInterface.<anonymous closure> (package:spotube/services/audio_player/audio_player.dart:93)
#1      _rootRunUnary (dart:async/zone.dart:1407)
#2      _CustomZone.runUnary (dart:async/zone.dart:1308)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#5      _DelayedData.perform (dart:async/stream_impl.dart:541)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:646)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:617)
#8      _rootRun (dart:async/zone.dart:1391)
#9      _CustomZone.run (dart:async/zone.dart:1301)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#12     _rootRun (dart:async/zone.dart:1399)
#13     _CustomZone.run (dart:async/zone.dart:1301)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1249)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
---------
[2024-11-24 22:42:07.861497]---------------------
NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("__typename")
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:38)
#1      _objectNoSuchMethod (dart:core-patch/object_patch.dart:85)
#2      transformSectionItemTypeJsonMap (package:spotube/models/spotify/home_feed.dart:174)
#3      transformSectionItemJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:220)
#4      MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#5      ListIterator.moveNext (dart:_internal/iterable.dart:354)
#6      WhereIterator.moveNext (dart:_internal/iterable.dart:450)
#7      new _GrowableList._ofOther (dart:core-patch/growable_array.dart:202)
#8      new _GrowableList.of (dart:core-patch/growable_array.dart:152)
#9      new List.of (dart:core-patch/array_patch.dart:39)
#10     Iterable.toList (dart:core/iterable.dart:498)
#11     transformSectionItemJsonMap (package:spotube/models/spotify/home_feed.dart:229)
#12     transformHomeFeedJsonMap.<anonymous closure> (package:spotube/models/spotify/home_feed.dart:241)
#13     MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#14     ListIterator.moveNext (dart:_internal/iterable.dart:354)
#15     new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
#16     new _GrowableList.of (dart:core-patch/growable_array.dart:150)
#17     new List.of (dart:core-patch/array_patch.dart:39)
#18     ListIterable.toList (dart:_internal/iterable.dart:224)
#19     transformHomeFeedJsonMap (package:spotube/models/spotify/home_feed.dart:244)
#20     CustomSpotifyEndpoints.getHomeFeed (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:164)
<asynchronous suspension>
#21     FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:348)
<asynchronous suspension>

Operating System

Android

Spotube version

3.8.3

Installation source

GitHub Releases (Binary)

Additional information

No response

Self grab

  • [ ] I'm ready to work on this issue!

glanduin avatar Nov 24 '24 19:11 glanduin

Same issue with me and my friend

EyeFrost avatar Dec 27 '24 06:12 EyeFrost

+1

JaskaranSM avatar Jan 11 '25 20:01 JaskaranSM

Same with version 4.0

VforVolcano avatar Mar 09 '25 10:03 VforVolcano

Same on Ubuntu. Could take up to 30 seconds for a selected song to start playing. This is not normal or acceptable performance.

BearOutThere avatar Mar 22 '25 09:03 BearOutThere

Same here in Android 15

victorballester7 avatar May 02 '25 11:05 victorballester7

I noticed the same issue. The audio buffering gets slightly better when switching the YouTube engine from the default “YouTubeExplode” to “NewPipe”. I also noticed that the two buttons shown in the screenshot fail to work around 90% of the time.

Image

sangimed avatar Dec 07 '25 15:12 sangimed