#3 24mb in fdroid

Closed
opened 6 years ago by bugabinga · 5 comments

Thank you for sharing this app. Love it!

The apk in FDroid is 24MB which seems overly large to me.

I am short on time right now, but would like to investigate this later.

Thank you for sharing this app. Love it! The apk in FDroid is 24MB which seems overly large to me. I am short on time right now, but would like to investigate this later.
zPlus commented 6 years ago
Owner

Hey, I'm glad that the app is useful to somebody else :)

Yes I've also noticed that the final apk is rather large. The app in src/ is actually pretty small, ~300KB. I think the problem is with some dependency that I'm pulling in.

Hey, I'm glad that the app is useful to somebody else :) Yes I've also noticed that the final apk is rather large. The app in `src/` is actually pretty small, ~300KB. I think the problem is with some dependency that I'm pulling in.
bugabinga commented 6 years ago
Poster

@zPlus You are right. The reason is certainly this dep: https://github.com/wseemann/FFmpegMediaMetadataRetriever

It supports ARM, ARMv7, x86, x86_64, MIPS and ARM_64 and for each platform has copies of the shared libraries (basically a copy of ffmpeg) in the apk.

I am not sure what it does exactly, but it seems to replace a standard Android API. Can the standard API be used instead?

@zPlus You are right. The reason is certainly this dep: https://github.com/wseemann/FFmpegMediaMetadataRetriever It supports ARM, ARMv7, x86, x86_64, MIPS and ARM_64 and for each platform has copies of the shared libraries (basically a copy of ffmpeg) in the apk. I am not sure what it does exactly, but it seems to replace a standard Android API. Can the standard API be used instead?
zPlus commented 6 years ago
Owner

That dependency is used only to retrieve Icecast data, see here. As it's described in the FFmpegMediaMetadataRetriever's README, "URL support (Unlike MediaMetadataRetriever)". Android's MediaMetadataRetriever seems to be able to fetch metadata only for local files, not remote files or streams.

I don't know if this library can be stripped down to something smaller, or if there is any alternative library to retrieve metadata from Internet audio streams.

That dependency is used only to retrieve Icecast data, [see here](https://notabug.org/metadb-apps/InternetRadio/src/master/app/src/main/java/community/peers/internetradio/network/Player.java#L139). As it's described in the FFmpegMediaMetadataRetriever's [README](https://github.com/wseemann/FFmpegMediaMetadataRetriever/blob/master/README.md), "URL support (Unlike MediaMetadataRetriever)". Android's MediaMetadataRetriever seems to be able to fetch metadata only for local files, not remote files or streams. I don't know if this library can be stripped down to something smaller, or if there is any alternative library to retrieve metadata from Internet audio streams.
bugabinga commented 6 years ago
Poster

I have found a smaller library which does only what is needed here.

https://github.com/vsmaks/audiostream-metadata-retriever

Unfortunately, it does not seem maintained any more so I tried to recreate the relevant functionality:

https://github.com/vsmaks/audiostream-metadata-retriever/blob/master/library/src/main/java/com/vodyasov/amr/AudiostreamMetadataRetriever.java

But I am struggling with the Volley API which makes it hard to deal with headers (response and request), which the IceCast metadata api seems to rely on.

Anyway, this should be simple but will take me a while, because I need to learn some more about Android.

I have found a smaller library which does only what is needed here. https://github.com/vsmaks/audiostream-metadata-retriever Unfortunately, it does not seem maintained any more so I tried to recreate the relevant functionality: https://github.com/vsmaks/audiostream-metadata-retriever/blob/master/library/src/main/java/com/vodyasov/amr/AudiostreamMetadataRetriever.java But I am struggling with the Volley API which makes it hard to deal with headers (response and request), which the IceCast metadata api seems to rely on. Anyway, this should be simple but will take me a while, because I need to learn some more about Android.
zPlus commented 6 years ago
Owner

Thank you @bugabinga

Making a new (async) request with Volley should be as easy as this. I'll also try a few options as soon as possible.

Note to self: relevant.

Thank you @bugabinga Making a new (async) request with Volley should be as easy as [this](https://developer.android.com/training/volley/simple.html#simple). I'll also try a few options as soon as possible. Note to self: [relevant](http://uniqueculture.net/2010/11/stream-metadata-plain-java/).
zPlus referenced this issue from a commit 6 years ago
Sign in to join this conversation.
No Label
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.