25huizengek1 / ViTune

An Android application for seamless music streaming
https://vitune.app
GNU General Public License v3.0
332 stars 19 forks source link

A small latency in dynamic mode while switching songs #154

Closed Enigma1309 closed 6 months ago

Enigma1309 commented 6 months ago

Steps to reproduce the bug

1) use latest version of app. 2) turn on dynamic theme. 3) switch song, it will introduce a small delay when switching the themes.

Expected behavior

There should be an small delay

Actual behavior

The delay when switching is too much to be considered as small

Screenshots/Screen recordings

These were taken on nightly build

Video showcasing this

https://github.com/25huizengek1/ViTune/assets/94917588/74ebfbdd-25ca-4cbc-b38f-d028004e7eaa

Logs

IDK how to get logs but i somehow did it, launched the app and changed a few music

command i used :- adb logcat --pid='adb shell pidof -s it.vsffitvnm.vimusic' (ues i took logs on current version not nightly one)

https://pastebin.com/ewxjx95H

ViMusic version

ViMusic Nightly

What kind of build are you using?

Release (GitHub / F-Droid)

Android version

Android Oreo (8.1)

Device info

Using Motorola G4+

Upstream reproducibility

Not reproducible in upstream, Showcased in video

Additional information

most probably this issue came out after 1af04d23c5d14e6e01e35231196d490ad7f43586 commit i loved this commit due to it's ability to give accent color on lyrics too but it's kinda slow on older devices

Checklist

SiddhantRakh commented 6 months ago

I don't experience this bug. I think that the colour changes only when the whole album art is cached so it might be a network speed issue causing this on your side. You can try decreasing the thumbnail quality to make it load faster but still this is just my opinion.

Enigma1309 commented 6 months ago

thanks for showing interest in this, but it can't be an network issue , if it was then the other application should also behave the same but it's loading fast. Also this issue started happening right after that specific commit.

25huizengek1 commented 6 months ago

There is a delay because the image has to be loaded from either memory cache / disk cache / internet, and then processed to get the accent color. To speed the process up, you can always lower the image quality in settings.

Enigma1309 commented 6 months ago

There is a delay because the image has to be loaded from either memory cache / disk cache / internet, and then processed to get the accent color. To speed the process up, you can always lower the image quality in settings.

what was the default image resolution on older app ? mine shows full 1920 in the new update

Enigma1309 commented 6 months ago

also in the recording i see the image is loading earlier but still the colors are coming a bit later, are they switching after the music has been recognized and started playing ?

25huizengek1 commented 6 months ago

There is a delay because the image has to be loaded from either memory cache / disk cache / internet, and then processed to get the accent color. To speed the process up, you can always lower the image quality in settings.

what was the default image resolution on older app ? mine shows full 1920 in the new update

256 density pixels, I've doubled it (by default), that way newer launchers/android versions can profit from a higher quality bitmap.

25huizengek1 commented 6 months ago

also in the recording i see the image is loading earlier but still the colors are coming a bit later, are they switching after the music has been recognized and started playing ?

First, the song gets loaded by the player, in the meantime the thumbnail url gets passed to Coil (image loader), the resulting bitmap is then used for color processing.

Enigma1309 commented 6 months ago

I've doubled it (by default)

okay so you've doubled it (that's why i was wondering why i wasn't getting the thumbnail of precached songs 🤔...anyways), it means i have to set it to 960px?

256 density pixels

hmm i'm confused.. should i set it to 920 or 256 in the app??

First, the song gets loaded by the player, in the meantime the thumbnail url gets passed to Coil (image loader), the resulting bitmap is then used for color processing.

okay so it works simultaneously (i think that's what you mean..)