2012-04-04 9 views
0

ich folgende Fehlermeldung erhalten:iOS Streaming-Video-Fehler

2012-04-04 23:46:18.374 istiqlaltv[17121:e903] -[istiqlaltvViewController moviePlayBackDidFinish]: unrecognized selector sent to instance 0x6136ee0 
2012-04-04 23:46:18.380 istiqlaltv[17121:e903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[istiqlaltvViewController moviePlayBackDidFinish]: unrecognized selector sent to instance 0x6136ee0' 

Dies ist Code, ich bin sehr neu in iOS, ich möchte nur ein Streaming-Video spielen, wenn Sie die Play-Taste drücken.

-(void)playVideo{ 
NSURL *url = [[NSURL alloc] initFileURLWithPath:@"http://blabla.com/playlist.m3u8"]; 

NSString *strVersion = [[UIDevice currentDevice] systemVersion]; 
float version = [strVersion floatValue]; 

if(version < 4.0){ 
    MPMoviePlayerController *themovie = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    themovie.scalingMode = MPMovieScalingModeAspectFill; 
    [themovie play]; 
}else{ 
    MPMoviePlayerViewController *themovie = [[MPMoviePlayerViewController alloc]initWithContentURL:url]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish) name:MPMoviePlayerPlaybackDidFinishNotification object:themovie.moviePlayer]; 
    [self presentMoviePlayerViewControllerAnimated:themovie]; 
} 
} 

-(void) moviePlayBackDidFinish:(NSNotification *)notification{ 
    MPMoviePlayerController *player = [notification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player]; 
    [player stop]; 
    [self dismissMoviePlayerViewControllerAnimated]; 
} 

Irgendwelche Hilfe?

Antwort

1

Sie vermissen die : im moviePayBlackDidFinish: Selektor, wenn Sie Ihren Beobachter hinzu:

Sollte sein:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:themovie.moviePlayer]; 

Beachten Sie, dass der Doppelpunkt nach dem Methodennamen zeigt an, dass das Verfahren einen Parameter annimmt. Sie haben den Fehler erhalten, weil Ihr Code nach einer Methode mit dem Namen moviePlaybackDidFinish gesucht hat, die keinen Parameter akzeptiert, aber keine solche Methode existiert.

+0

Hallo, ja natürlich !! Vielen Dank – Xiabili