Problème affichage flux video MJPEG camera IP
Bonjour, je suis entrain d'essayer d'afficher le flux video de mes cam ip dans une webview, cependant , l'image s'affiche mais c'est tout , il n'y a pas de flux , c'est uniquement une seule image.
Par contre dans safari, tout fonctionne parfaitement.
Voici mon code , mais où est mon erreur
[code=auto:0]
- (void)viewDidLoad {
//Chargement de l'URL
NSString *urlAddress = @"http://154.235.83.19:8081/videostream.cgi?user=admin&pwd=513201";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
webView.delegate=self;
[webView loadRequest:requestObj];
}
Par contre dans safari, tout fonctionne parfaitement.
Voici mon code , mais où est mon erreur
[code=auto:0]
- (void)viewDidLoad {
//Chargement de l'URL
NSString *urlAddress = @"http://154.235.83.19:8081/videostream.cgi?user=admin&pwd=513201";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
webView.delegate=self;
[webView loadRequest:requestObj];
}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
De mémoire :
Une des versions d'iOS6 qui coà¯ncidait avec une mise à jour de Safari Mac OS X a bloqué tout ça (aussi bien sur iOS et que OS X)
Le MJPEG, c'est du MotionJPEG, c'est à dire que ça envoie en continue un JPEG. Et avant, Safari (Mac OS X/iOS) et les UIWebView s'occupaient de l'auto-refresh.
Vu que ça ne marchait plus, j'avais décidé pour le projet d'utiliser des NSStreams, et de décoder les images (il suffit de trouver quels sont les bytes annonçant le début d'une image et ceux d'une fin, de les mettre dans un buffer et de recomposer le tout, UIImage pouvant être initWithData: (ou un truc du genre)).
J'avais trouvé sur le net un code source qui le faisait, mais j'avais préféré utiliser ma solution maison.
Avec un peu de recul, je vois autrement deux possibles pistes :
- faire un auto-refresh manuel (et regarder si peut-être des delegates de UIWebView ne sont pas triggers d'ailleurs par défaut et retourne non sur l'auto-refresh habituel), mais ça veut dire potentiellement un NSTimer.
- peut-être essayer de "surcharger" le code de la page via un script (JavaScript) qui s'occuperait de faire le refresh.
Si jamais tu veux mon code avec la solution des NSStreams, je peux potentiellement te le filer en début de semaine prochaine.
Alors, désolé pour la réponse tardive.
J'ai retrouvé mon code.
C'est pas zoli zoli, j'ai essayé de cleaner un peu (comme j'ai pu, en 5 minutes), mais je n'ai pas la possibilité de tester si tout marche encore.
Avec l'expérience que j'ai gagné depuis, je n'aurais certainement pas laissé un code aussi sale.
Donc je déconseillerais de laisser ça ainsi. Si tu as besoin, je veux bien essayer de m'y replonger encore un peu pour essayer de trouver des erreurs possibles.
Mais par exemple, si c'était à refaire, j'utiliserais sûrement rangeOfData:options:range: plutôt que de faire ce que j'ai fait avec tous ces ifs étranges. Je trouve étrange ce Byte byte[2]; à un moment par exemple.
Y'avait aussi des release, mais je pense m'en être débarrassé.