0

MediaPlayer フレームワークでこのコードを使用して、ビデオを再生しています。

-(void)GrommeVideoExcerpt1
{
NSURL *url1 = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"GrommeVideoExcerpt1" ofType:@"mp4"]];
grommePlayer1 =  [[MPMoviePlayerController alloc]
                  initWithContentURL:url1];

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

grommePlayer1.controlStyle = MPMovieControlStyleDefault;
grommePlayer1.shouldAutoplay = YES;
[self.view addSubview:grommePlayer1.view];
[grommePlayer1 setFullscreen:YES animated:YES];
}

しかし、あるビデオを再生してから別のビデオに移動して再生しようとすると、アプリがクラッシュします。それは私にこのエラーを与えます:

http://pastebin.com/nUGLXEAi

4

1 に答える 1

0

moviePlayBackDidFinish:ここでの問題は、ビデオの再生が終了したときの通知を追加していることです。その通知は、クラッシュを引き起こす( ) 持っていないメソッドをトリガーします。

このメソッドを実装するか、通知を削除することができます。これは、ビデオの再生が完了した後に何をしたいかによって異なります。つまり、ビデオを再生する viewController を削除するなどです。

//Register notification
[[NSNotificationCenter defaultCenter] addObserver:self
                                     selector:@selector(moviePlayBackDidFinish:)
                                         name:MPMoviePlayerPlaybackDidFinishNotification
                                       object:nil];
//Then the method ...
-(void) moviePlaybackDidFinish:(NSNotification *)aNotification{
  [grommePlayer1.view removeFromSuperview];
  grommePlayer1 = nil;
}
于 2012-08-22T16:09:48.320 に答える