Я пытаюсь передать видео MJPEG в приложение iOS через локальный IP-адрес. Соединение установлено, и поток имеет успех, я могу увидеть обновление шестнадцатеричных значений в моей консоли. Однако UIImageView отображает только первый полученный фрейм и после этого не обновляется. Что не так в коде? Я даже попытался обновить представление с помощью setNeedsDisplay, это не помогло. Я знаю, что NSURLConnection устарел в iOS 9+, это просто проверка кода, так как это можно устранить?Не удалось обновить UIImageView
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize recievedData;
- (void)viewDidLoad {
NSURLRequest *theRequest =
[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.0.15:8090/?action=stream"]];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
recievedData = [[NSMutableData alloc] init];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[recievedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"%@",recievedData);
UIImage *recievedImage = [UIImage imageWithData:recievedData];
self.streamView.image = recievedImage;
[self.streamView setNeedsDisplay];
}
@end
Его поток изображения не является потоком видео, его формат «MJPEG». Просто нужно захватить изображения и обновить их в UIImageView. MJPEG - Мультимедиа Motion JPEG (M-JPEG или MJPEG) - это формат сжатия видео, в котором каждый видеокадр или чересстрочное поле цифровой видеопоследовательности сжимается отдельно как изображение в формате JPEG. –