Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've recently been asked to design a video player for the iPad. I've never done one before and I'm wondering if I could get some caveats in terms of it's development and design. Are there areas of building a video player that are particularly buggy or troublesome? What part of building one takes the most time?

Generally speaking I'm just trying to get a feel of what will be the difficult part and what I'm about to get into.


share|improve this question
up vote 2 down vote accepted

If you're talking a web-based player, there's really only one way to make it happen... not a whole lot of creativity involved. You can define a video player with the video tag, a video poster (image displayed before user presses play), and that's about it.

iPhones will play the video in full screen, iPads will play the video in the defined area until the user selects fullscreen or does a zoom gesture.

Apple really maintains all control over the web-based video player experience.

Sample (view with iOS):

Encoding is the hardest part since it is very specific format. In terms of bugs/limitations, here are the ones we are familiar with:

  1. When other media starts playing on the iPad (for example a notification popup with a tone), it can disrupt the in-browser video, causing it to lose video and only play audio until the video is reloaded.
  2. The same audio-only state can occur in very poor network conditions as well (for example watching a video over a struggling 3G connection).
  3. It's up to the user when to start playing the video - autoplay only works in a narrow set of circumstances.
share|improve this answer

You don't have a lot of control over the MPMoviePlayerController component. If you just want to play videos without fancy controls, then MPMoviePlayerViewController may be sufficient, or using MPMoviePlayerController directly (note that these are two different classes; one of these has View in its name).

The alternative to the MPMoviePlayer is the AV Foundation framework. As far as I know, these classes do not come with their own UI so you'd have to build that from scratch, but they do offer fine-grained control over playback and so on (something that MPMoviePlayer doesn't).

That's just the UI bit. There is also the question of where the videos come from. Are they locally stored files or streamed from the web? If the latter, what format are they in? You should check whether the iPad supports that movie format. If not, you might have to write a conversion layer (probably on the server side).

So, as usual, it depends.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.