我正在尝试通过本地IP将MJPEG视频流式传输到我的iOS应用程序中。连接已建立并且流成功,我可以在控制台中看到十六进制值更新。但是,UIImageView 仅显示它收到的第一帧,之后不会更新。代码中有什么问题?我什至尝试使用setNeedsDisplay刷新视图,但没有帮助。我知道 NSURLConnection 在 iOS 9+ 中已弃用,这只是为了测试代码,那么如何解决这个问题?
#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
在我看来,
这是视频流,您需要使用视频播放器来显示媒体内容。