Mar 18, 2010

Why there're only few not-so-good apps with equalizer or extra codec supporting on Android Market

Android framework has a MediaPlayer class, which will do file recognizing, dispatching, decoding, rendering, and synchronizing for apps.
Most video/music player apps just call this awesome class, and it works as you can see.

However, if you want a equalizer or implementing your own codec, the story is all different.
MediaPlayer class does not support those features, and Android splits Java codes and native C/C++ codes into two parts.
Main functions of MediaPlayer is native code, and bound with the device using special signatures. Apps on Market have no way to change that, and pure Java code is too slow to process such heavy-loading work.

Okay, so some people say you can use NDK.
Yes, you can use NDK to make your own MediaPlayer --- The WHOLE MediaPlayer.
You need to write (or copy) your own code of recognizing, dispatching, decoding, rendering, synchronizing, and all other MediaPlayer efforts. Oh, don't forget to plug in EVERY codec you support, since you can't access Android's default decoder in NDK.

So what's the result? You can try Audio Player WithEQ and yxflash to see what they provide.
Believe me, they pay much effort and have very good tech on these app. But the quality says how this is hard to do.

Meridian won't go that way. Still waiting Android to publish a better solution for this.

1 comment:

Unknown said...

Brilliant analysis