Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overlay on top of Streaming MPMoviePlayerController

I went through the example from apple "MoviePlayer on iPhone"

Im trying to overlay on top of the mpmovieplayercontroller,

it works perfectly with video clip that is in bundle,

but it wont work if i stream the video from the url.

the overlay view will just get hide behind the player.

is there a way to bring the overlay view up to front?

like image 361
vicky Avatar asked Aug 31 '09 08:08

vicky


1 Answers

MPMoviePlayerController creates its own window and sets that as the key window - you probably know this already from the MoviePlayer sample app.

I don't know why, but there's a delay when the player uses a stream - so the keyWindow you get right after you initialize the player is likely not the player's window, since that seems to get added later.

You can "cheat" and use a timer to get the player window a few seconds later, and add your overlay:

[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(addMyOverlay:) userInfo:nil repeats:FALSE]

Or you can listen for the UIWindowDidBecomeKeyNotification event, and do the same:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyWindowChanged:) name:UIWindowDidBecomeKeyNotification object:nil];

Neither option is great (I'd love to know a cleaner way to do this), but it gets the job done.

like image 105
alex_c Avatar answered Sep 17 '22 21:09

alex_c