Existe-t-il un moyen de savoir si un AVPlayer
jeu a stagné ou atteint la fin?
Réponses
Trop de publicités?
maz
Points
1766
Pour obtenir de notification pour atteindre la fin d'un article (par Apple):
[[NSNotificationCenter defaultCenter]
addObserver:<self>
selector:@selector(<#The selector name#>)
name:AVPlayerItemDidPlayToEndTimeNotification
object:<#A player item#>];
Et pour suivre la lecture, vous pouvez:
"suivre les changements dans la position de la tête de lecture dans un AVPlayer objet" en utilisant addPeriodicTimeObserverForInterval:file d'attente:usingBlock: ou addBoundaryTimeObserverForTimes:file d'attente:usingBlock:.
Exemple d'Apple:
// Assume a property: @property (retain) id playerObserver;
Float64 durationSeconds = CMTimeGetSeconds([<#An asset#> duration]);
CMTime firstThird = CMTimeMakeWithSeconds(durationSeconds/3.0, 1);
CMTime secondThird = CMTimeMakeWithSeconds(durationSeconds*2.0/3.0, 1);
NSArray *times = [NSArray arrayWithObjects:[NSValue valueWithCMTime:firstThird], [NSValue valueWithCMTime:secondThird], nil];
self.playerObserver = [<#A player#> addBoundaryTimeObserverForTimes:times queue:NULL usingBlock:^{
// Passing NULL for the queue specifies the main queue.
NSString *timeDescription = (NSString *)CMTimeCopyDescription(NULL, [self.player currentTime]);
NSLog(@"Passed a boundary at %@", timeDescription);
[timeDescription release];
}];