androiddownloadmedia-playermp4progressive

Android MediaPlayer, support for progressive download audio or not?


I'm currently performing a feasibility study where one of the questions is concerning the possibility to switch from streaming to progressive download of audio. By progressive download I mean that the audio files, which are hosted by a standard web server with nothing fancy on it, can be downloaded through standard http calls, and played back before the whole file is downloaded completely.

My company's has contracted external Android app developers, which now claim that although progressive download in the manner specified above works fine for the MP3 files but that it is not possible with the AAC MP4 files. I have no reason to doubt the developers, but I would love a second opinion. I've been researching this topic (by frantic googling) and find no reason for it not to work. I've also tested some existing players on the Android Market (MX player for instance) and they can play the files while downloading.

So my question is basically if anyone know for a fact that using the MediaPlayer component in Android (let's say versions 2.1 through 4.1), progressive download and playback before the AAC MP4 file is downloaded completely actually works?

Also, since the AAC codec and the MP4 container are vastly more complex than MP3, do we have to do something with our files when encoding them to ensure progressive download with the MediaPlayer component? When researching I found some information about some "faststart" option, and also "hinting" which may or may not be important (hinting seems to be one of the most "magical" topics... half of the articles/blogs say you need to hint, but the other half says that you definitely don't need to hint). Since I can play back progressively with MX Player, I am guessing that our encoding already performs whatever is needed, or am I wrong in this assumption?

Cheers!


Solution

  • (disclaimer : that was done with video files, not music ones)

    I have done that, it is completely feasible.

    The trick with MP4 is to place the index at the /beginning/ of the file, rather than at the end where it usually is.