2010-12-16 252 views
6

J'utilise AVPlayer pour lire un flux en direct à partir d'Internet. AVPlayer peut être mis en pause, mais à la reprise, il commence à partir du moment où il a été mis en pause, tout comme un TiVO. AVPlayer n'a pas de méthode d'arrêt. Comment peut-on continuer avec ce qui est en train d'être diffusé (comme si vous éteigniez et rallumiez votre autoradio)?Arrêt de AVPlayer sur iOS

+0

dépend-il du serveur de streaming? – onmyway133

Répondre

1

-(void)seekToTime:(CMTime)time

utiliser cette méthode pour obtenir au début du fichier

-1

SeekToTime wont stop l'audio, donc une fois que vous atteignez la fin si vous appelez seulement seekToTime il suffit de commencer à jouer à nouveau comme une boucle. Vous pouvez utiliser la version ci-dessous avec un rappel pour mettre en pause la vidéo/audio dès que la recherche est terminée afin qu'il se réinitialise et s'arrête simultanément.

[_player seekToTime:CMTimeMake(0, 1) completionHandler:^(BOOL finished) { 
    [_player pause]; 
}]; 
-1
[player pause]; 
[item_ removeObserver:self forKeyPath:@"status" context:nil]; 
[item_ removeObserver:self forKeyPath:@"playbackBufferEmpty" context:nil]; 
[item_ removeObserver:self forKeyPath:@"playbackLikelyToKeepUp" context:nil]; 
[item_ removeObserver:self forKeyPath:@"timedMetadata" context:nil]; 
player=nil; 
1

Pour arrêter une AVPlayer:

[player replaceCurrentItemWithPlayerItem:nil]; 

Cela permettra de libérer toutes les ressources mémoire et processeur et son actif associé consumé. Aussi simple que cela.