iphone - iPad 3.2 & [MPMoviePlayerController setFullScreen:] not showing up -


i have universal application plays movies internet. has support 3.1.x 4.x.

in order work, have branch in code detects pre-3.2 devices , utilizes mpmovieplayercontroller supposed work there.

this how prepare player play remote movie:

- (void)registerformovienotifications {     //for 3.2 devices , above     if ([movieplayer respondstoselector:@selector(loadstate)]) {         log(@"movieplayer responds loadstate, 3.2+ device");          //register notification movie ready play         [[nsnotificationcenter defaultcenter] addobserver:self                                                  selector:@selector(movieplayerloadstatechanged:)                                                      name:mpmovieplayerloadstatedidchangenotification                                                    object:nil];          [[nsnotificationcenter defaultcenter] addobserver:self                                                  selector:@selector(didexitfullscreen:)                                                       name:mpmovieplayerdidexitfullscreennotification                                                    object:nil];          log(@"preparing movieplayer...");         [movieplayer preparetoplay];           } else {             //for pre-3.2 devices             log(@"this 3.1.x device");              //register notification movie ready play             [[nsnotificationcenter defaultcenter] addobserver:self                                                      selector:@selector(moviepreloaddidfinish:)                                                          name:mpmovieplayercontentpreloaddidfinishnotification                                                        object:nil];         }          //handle when movie finished         [[nsnotificationcenter defaultcenter] addobserver:self                                                  selector:@selector(movieplaybackdidfinish:)                                                      name:mpmovieplayerplaybackdidfinishnotification                                                    object:nil];     }     - (void)readyplayer {         if (!movieplayer) {             movieplayer = [[mpmovieplayercontroller alloc] initwithcontenturl:movieurl];         } else {             [movieplayer setcontenturl:movieurl];         }          [self registerformovienotifications];     } 

later on notification, , sets movie player's view, etc.

- (void) movieplayerloadstatechanged:(nsnotification*)notification {     log(@"3.2/4.x - movieplayerloadstatechanged:");     //unless state unknown, start playback     if ([movieplayer loadstate] != mpmovieloadstateunknown) {         //remove observer         [[nsnotificationcenter defaultcenter] removeobserver:self                                                         name:mpmovieplayerloadstatedidchangenotification                                                       object:nil];          //set frame of movie player match         self.view.autoresizessubviews = yes;          [[movieplayer view] setframe:self.view.bounds];         [[movieplayer view] setautoresizingmask:uiviewautoresizingflexiblewidth | uiviewautoresizingflexibleheight];         [[movieplayer view] setautoresizessubviews:yes];          //add movie player subview         [self.view addsubview:movieplayer.view];         [movieplayer setfullscreen:yes];          //play movie         [movieplayer play];      } } 

and movie plays. works on iphone 4.2, 4.3, ipad 4.2, 4.3, fails on ipad 3.2. movie plays black screen.

if remove [movieplayer setfullscreen:yes] call visible playing movie in 3.2, isn't "fullscreen" , doesn't have done button , there's no way me dismiss screen.

i'd love on what's going on here. thanks!

i able come acceptable solution, still feel might bug.

if skip call setfullscreen , instead manually set controlstyle mpmoviecontrolstylefullscreen gives me view correct (the toolbar 40 pixels low).

then can done button, triggers movieplayer:didfinishplaying callback.

so stinks have smelly if 3.2 branch of logic in code, people on 4.0 anyway.


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -