Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to play a video on iPhone and have a subtitles synchronized with it show up?

I want to add a "subtitles" to a video played in an iPhone app. I don't want those subtitles encoded into the video itself - ideally I'd love to have a view showing the video (with pause, play, volume and such standard controls) together with a view displaying the text that changes together with movie time changing.

If I drawn that, it's something like this, movie with subtitle

So, basicly, I would need a way to get a method called when movie is playing, and then synchronize the text displayed on the label with the movie timing.

Anyone used a solution that was able to do it?

like image 256
kender Avatar asked Feb 05 '11 10:02

kender


1 Answers

I've recently done something that syncs graphics to times in an audio track. The way I did it was by using the currentPlaybackTime property of the MPMediaPlayback interface (which the MoviePlayer controller should also conform to). This returns the seconds elapsed in the media, in a double (typedef'ed as NSTimeInterval). The actual synchronisation in my app was not done in notifications, as I couldn't find any resembling a "tick", but instead I created a timer, calling a function queried the currentPlaybackTime, and updated the graphics based on this.

In terms of your implementation, I would assume you have some kind of system for associating label text (subtitles) with a particular time. You could then compare the text's time range with the time returned from currentPlaybackTime to find the correct text to display.

like image 144
badgerr Avatar answered Oct 24 '22 13:10

badgerr