문제

목표 C에서 MJPEG 뷰어를 만들려고 노력하고 있지만 많은 문제가 있습니다.

먼저 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 스트림을 호출하지만 더 많은 데이터를 얻기 위해 호출하지는 않습니다. 내가 생각하는 것은 첫 번째 데이터 덩어리를로드 한 다음 연결을 끊는 것입니다.

나는 이것을 완전히 잘못하고 있습니까? 아니면이 터널 끝에 빛이 있습니까?

감사!

도움이 되었습니까?

해결책

uiwebview에 mjpeg를로드하십시오. 기본적으로 재생할 수 있어야합니다.

"mywebview"라는 Uiwebview가 있다고 가정하면 이와 같은 것이 작동해야합니다.

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

도움이되기를 바랍니다!

다른 팁

주된 문제는 WebKit이 데이터를 다시 표시하지 않기 때문에 잠시 후에 폭발한다는 것입니다.

그렇지 않으면 uiwebview와 의사 소통하는 좋은 방법이 없기 때문에 JavaScript로 가장 잘 수행되는 것이 가장 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top