2017-02-03 1 views
0

Comment puis-je vérifier quand un HLS a cessé de diffuser?Objectif c Vérifier quand HLS a arrêté le streaming

Mon code:

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue new] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
{ 
    NSHTTPURLResponse *tempResponse = (NSHTTPURLResponse *) response; 

    if (error || [tempResponse statusCode] != 200) 
    { 
     //the video has stopped, do my stuff 
    } 
}]; 

Le problème actuel est même la vidéo a clairement arrêté le streaming, le lecteur vidéo a également complètement arrêté. Il me renvoie toujours un statusCode = 200 qui me dit que la vidéo est encore en train de jouer. Comment l'implémenter d'une manière correcte et précise? Merci

+0

Le code d'état HTTP n'a rien à voir avec la lecture de la vidéo ou non. Parse la playlist HLS. –

+0

Pouvez-vous élaborer votre suggestion? Si le code d'état n'a rien à voir avec cela, qu'est-ce qui pourrait être la bonne façon? – bubibu

+0

Comme je l'ai dit, analyser les données de la liste de lecture HLS que vous obtenez du serveur là-bas. Cela vous dira ce qui se passe dans le flux. –

Répondre

0

Lorsque vous faites votre demande, vous obtenez la liste de lecture HLS. Le code d'état du serveur ne veut rien dire puisqu'il ne s'agit que du code d'état HTTP et que vous obtiendrez une liste de lecture avec succès quel que soit l'état de lecture, au moins pendant un certain temps.

La playlist HLS contiendra le marqueur de fin si la diffusion en continu a pris fin:

#EXT-X-ENDLIST 

Plus d'informations peuvent être trouvées à partir Apple's documentation. Notez que la liste de lecture vous dira si le streaming s'est terminé, pas si la lecture s'est arrêtée. Il peut y avoir beaucoup de vidéo dans la liste et la seule façon de savoir si lecture s'est arrêté est de demander au composant de faire la lecture.

+0

"La liste de lecture HLS contiendra le marqueur de fin si le streaming est terminé", comment puis-je vérifier cela? "EXT-X-ENDLIST" où sera-t-il retourné? – bubibu

+0

@bubibu Toujours dans les données que vous téléchargez dans votre code –

+0

# EXTM3U # EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 722000, C'est ce que les données me sont retournées, je ne pouvais pas trouver # EXT-X-ENDLIST – bubibu