Создание MJPEG Viewer Iphone - PullRequest
       17

Создание MJPEG Viewer Iphone

0 голосов
/ 13 января 2010

Я пытаюсь сделать MJPEG-просмотрщик в Objective C, но у меня есть куча проблем с ним.

Во-первых, я использую AsyncSocket (http://code.google.com/p/cocoaasyncsocket/), который позволяет мне подключаться к хосту.

Вот что я получил до сих пор

NSLog(@"Ready");
asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];
//http://kamera5.vfp.slu.se/axis-cgi/mjpg/video.cgi
NSError *err = nil;
if(![asyncSocket connectToHost:@"kamera5.vfp.slu.se" onPort:80 error:&err])
{
    NSLog(@"Error: %@", err);
}

затем в методе didConnectToHost:

 - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{
NSLog(@"Accepted client %@:%hu", host, port);


NSString *urlString = [NSString stringWithFormat:@"http://kamera5.vfp.slu.se/axis-cgi/mjpg/video.cgi"];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"GET"];

    //set headers
NSString *_host = [NSString stringWithFormat:host];
[request addValue:_host forHTTPHeaderField: @"Host"];

NSString *KeepAlive = [NSString stringWithFormat:@"300"];
[request addValue:KeepAlive forHTTPHeaderField: @"Keep-Alive"];

NSString *connection = [NSString stringWithFormat:@"keep-alive"];
[request addValue:connection forHTTPHeaderField: @"Connection"];


//get response
NSHTTPURLResponse* urlResponse = nil;  
NSError *error = [[NSError alloc] init];  
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; 

NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog(@"Response Code: %d", [urlResponse statusCode]);
if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) {
    NSLog(@"Response: %@", result);
            //here you get the response
}

}

Это вызывает поток MJPEG, но не вызывает его, чтобы получить больше данных. Я думаю, что он просто загружает первую порцию данных и затем отключается.

Я делаю это совершенно неправильно или в конце этого туннеля есть свет?

Спасибо!

Ответы [ 3 ]

1 голос
/ 16 августа 2010

главная проблема в том, что webkit никогда не связывает данные, поэтому через некоторое время он взорвется

1 голос
/ 10 февраля 2010

Попробуйте загрузить mjpeg в UiWebView, он должен быть в состоянии воспроизвести его в исходном формате.

Предполагая, что у вас есть UiWebView с именем "myWebView", примерно так должно работать:

NSURLRequest* urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://kamera5.vfp.slu.se/axis-cgi/mjpg/video.cgi"]];
[myWebView loadRequest:urlRequest];

Надеюсь, это поможет!

0 голосов
/ 08 июля 2010

Это, вероятно, лучше всего сделать с помощью JavaScript, поскольку в противном случае нет хорошего способа связи с UIWebView.

...