ios4 - NSNotification Does Not Notify -
i have application shows lot of videos. load , play file, use following code:
- (ibaction)playvideoooo { [[uiapplication sharedapplication] setnetworkactivityindicatorvisible:yes]; movieplayercontroller = [[mpmovieplayercontroller alloc] initwithcontenturl: [nsurl urlwithstring:@"/unionedicentro2011_live.isml/manifest(format=m3u8-aapl)"]]; switch ( [self interfaceorientation] ) { case uiinterfaceorientationportrait: case uiinterfaceorientationportraitupsidedown: [[movieplayercontroller view] setframe:cgrectmake(0, 0, p_width, p_height)]; break; case uiinterfaceorientationlandscapeleft: case uiinterfaceorientationlandscaperight: [[movieplayercontroller view] setframe:cgrectmake(0, 0, l_width, l_height)]; break; } [movieplayercontroller preparetoplay]; [[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(movieplayerloadstatechanged:) name:mpmovieplayerloadstatedidchangenotification object:nil]; // register load state changed (movie ready) [[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(movieplaybackdidfinish:) name:mpmovieplayerplaybackdidfinishnotification object:nil]; [[self view] addsubview:[movieplayercontroller view]]; } - (void)movieplayerloadstatechanged:(nsnotification*)notification { // unless state unknown, start playback if ([movieplayercontroller loadstate] != mpmovieloadstateunknown) { [[nsnotificationcenter defaultcenter] removeobserver:self name:mpmovieplayerloadstatedidchangenotification object:nil]; [[uiapplication sharedapplication] setstatusbarorientation:[self interfaceorientation] animated:yes]; [movieplayercontroller play]; [[uiapplication sharedapplication] setnetworkactivityindicatorvisible:no]; } } - (void)movieplaybackdidfinish:(nsnotification*)notification { [[uiapplication sharedapplication] setstatusbarhidden:no]; [[nsnotificationcenter defaultcenter] removeobserver:self name:mpmovieplayerplaybackdidfinishnotification object:nil]; switch ( [self interfaceorientation] ) { case uiinterfaceorientationportrait: case uiinterfaceorientationportraitupsidedown: [[movieplayercontroller view] setframe:cgrectmake(0, 0, p_width, p_height)]; break; case uiinterfaceorientationlandscapeleft: case uiinterfaceorientationlandscaperight: [[movieplayercontroller view] setframe:cgrectmake(0, 0, l_width, l_height)]; break; } if ( [movieplayercontroller isfullscreen] ) { [movieplayercontroller setfullscreen:no]; } }
actually system seems works, have push button linked "playvideooooo" 2 times, let notification work. if move [movieplayercontroller play]; ibactions video starts correctly. how should notifications work?
question partially solved: matter not in nsnotification in preparetoplay.
Comments
Post a Comment