SimpleMobileTools / Simple-Music-Player

A clean music player with a customizable widget, stylish interface and no ads.
https://www.simplemobiletools.com
GNU General Public License v3.0
1.29k stars 408 forks source link

View and Edit Audio Tagger #298

Closed ghost closed 2 years ago

ghost commented 3 years ago

View and Edit Audio Tagger 102224627-37027f00-3f0c-11eb-941d-1ef443c493bb

qwertyfinger commented 3 years ago

On any Android version, the changes to metadata through MediaStore get reverted when the file is renamed or scanned by MediaScannerConnection: https://stackoverflow.com/a/60152702/3566013. I tested it on Android 8 and it's true. The hack described in the answer above to at least temporarily edit metadata seems to only work on Android 10 but not Android 11+.

Seems like the only reliable solution is to use some ID3 tag editor library and then rewrite the file completely: https://stackoverflow.com/a/60066961/3566013. Or to store the edited data only inside our application, so the changes would be saved locally in our app. But that would need a lot of refactoring.

@tibbi Should we proceed with any of the possible solutions or not implement this feature at all?

tibbi commented 3 years ago

I dont want to have the changes in our app only. Cant you research mediastore more? There has to be some way of doing it :)

qwertyfinger commented 3 years ago

I dont want to have the changes in our app only. Cant you research mediastore more? There has to be some way of doing it :)

There's very little info available on this stuff, and it seems like I've already looked at everything I was able to find. I tried a stock Music player on my Sony that allows changing metadata – it had the same problem of it being reverted. Poweramp only changes metadata locally inside its own application. I will test some other apps and try to find some more info on MediaStore.

tibbi commented 3 years ago

how would storing info in our app only work? Does it need a new database table?

qwertyfinger commented 3 years ago

Not sure about the details, I would need to take a look at what kind of a database we already have inside the app

tibbi commented 3 years ago

well okay, if you wont be able to fix it in general, we could go with updating it in our app only