MJPEGビューアーのiPhoneを作成します
-
20-09-2019 - |
質問
私はObjective 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で行われます。
所属していません StackOverflow