您可以使用通知中心:
1- 在 viewDidLoad 上:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playbackStateDidChange:)
name:@"MPAVControllerPlaybackStateChangedNotification"
object:nil];
2-实现这个方法(秒是一个整数):
- (void)playbackStateDidChange:(NSNotification *)note {
NSLog(@"note.name=%@ state=%d", note.name, [[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue]);
if ([[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue] == 2) {
timer= [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(increaseSeconds) userInfo:nil repeats:YES];
NSLog(@"seconds: %i", seconds);
} else if([[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue] == 1){
[timer invalidate];
NSLog(@"seconds: %i", seconds);
} else if([[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue] == 0){
NSLog(@"Total watched: %i", seconds);
[self dismissMoviePlayerViewControllerAnimated];
}
}
其中 MPAVControllerNewStateParameter == 2(视频开始) MPAVControllerNewStateParameter == 1(视频停止) MPAVControllerNewStateParameter == 0(视频完成或按下“完成”)
3-最后实现这个方法:
-(void) increaseSeconds {
seconds++;
}