Пытаюсь получить mjpeg видеопоток с ип-камеры и отобразить его в ios приложении. Соединение с ип-камерой по NSURLConnection происходит, в процедуры didReceiveData и didReceiveResponse вход осуществляется (ставил и отображал отладочные счетчики), а отображения в UIImageView (созданного в IB) не происходит. Плюс небольшая утечка памяти. Подскажите, пож-та, где закавыка? Проверял и в iOSSimulator'e и загрузкой на iPad. У меня малый опыт программирования в XCode (6.1.1). Спасибо.
Вот код:
// ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *cameraView;
@property (strong) IBOutlet UILabel *label;
@end
// ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize cameraView;
@synthesize label;
NSMutableData *dataResponse; // buffer for accumulating data
- (void)viewDidLoad
{ [super viewDidLoad];
dataResponse = [NSMutableData dataWithCapacity:100];
NSString *cameraURL = @"http://192.168.1.160:554/video.mjpg"; // URL request
NSURL *url = [NSURL URLWithString:cameraURL];
NSURLRequest *requestURLcamera = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:requestURLcamera delegate:self]; // connecting
if (!connection)
{ dataResponse = nil; // if no connection - release dataResponse
self.label.text = @"No connection!";}
else { self.label.text = @"Connection OK!"; };
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];}
- (void)connection: (NSURLConnection *) connection didReceiveData:(NSData *)data
{ [dataResponse appendData:data]; } // accumulating data
- (void)connection: (NSURLConnection *) connection didReceiveResponse:(NSURLResponse *)response
{
@autoreleasepool
{
UIImage *imageZ = [UIImage imageWithData:dataResponse]; // creating image
self.cameraView.image = imageZ; // image to UIImageView
}
[dataResponse setLength:0];
}
@end