显示进度条,直到video加载IOS7

嗨在我的应用程序中,我正在使用URL播放video。 我现在把我的服务器上的videourl传递给玩video的问题。 所以我想显示进度栏,直到它加载video。

所以我用MBProgressHUD进度条显示进度条,但video不是在播放,请告诉我在哪里做错了。

我的代码。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString * currentVideo = [videoarray1 objectAtIndex:indexPath.row]; NSString *strurl=[self urlencode:currentVideo]; NSURL *url=[NSURL URLWithString:strurl]; NSURLRequest *req=[NSURLRequest requestWithURL:url]; NSURLConnection *con=[NSURLConnection connectionWithRequest:req delegate:self]; if (con) { datas=[[NSMutableData alloc]init]; } spinner = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; spinner.mode = MBProgressHUDModeCustomView; [spinner setLabelText:@"Loading file....."]; [spinner setLabelFont:[UIFont systemFontOfSize:15]]; [spinner show:YES]; } -(NSString *)urlencode:(NSString *)str { NSString *encodeString=(NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)str, NULL, (CFStringRef)@"", kCFStringEncodingUTF8)); return encodeString; } - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ NSLog(@"%lld",[response expectedContentLength]); self.length = [response expectedContentLength]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data1{ [datas appendData:data1]; float progress = (float)[datas length]/(float)self.length; NSLog(@"%f",progress); float check=progress*100; if (check==100) { [spinner hide:YES]; [spinner removeFromSuperViewOnHide]; } } - (void)connectionDidFinishLoading:(NSURLConnection *)connection{ NSData *data = datas; NSLog(@"%@",data); NSString* myurl; myurl = [[NSString alloc] initWithData:datas encoding:NSASCIIStringEncoding]; NSLog(@"%@",myurl); _movieplayer = [[MPMoviePlayerController alloc]initWithContentURL: [NSURL URLWithString:myurl]]; [[_movieplayer view] setFrame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; [self.view addSubview: [_movieplayer view]]; [_movieplayer setShouldAutoplay:YES]; [_movieplayer prepareToPlay]; [_movieplayer play]; } 

我已经使用上面的代码,它不播放video请告诉我在上面的代码如何做到这一点错了。

谢谢。

1.创build新的视图控件

2.通过您的videoarray1值nextvieww控制我的意思是你的videourl

3.添加下面的代码nextview控件

 - (void)viewDidLoad { [super viewDidLoad]; self.indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; self.indicator.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); self.indicator.center = self.view.center; [self.view addSubview:self.indicator]; [self.indicator startAnimating]; _movieplayer = [[MPMoviePlayerController alloc]initWithContentURL: [NSURL URLWithString:[self urlencode:self.strPlayUrl]]]; [[_movieplayer view] setFrame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; [self.view addSubview: [_movieplayer view]]; [_movieplayer setShouldAutoplay:YES]; [_movieplayer prepareToPlay]; //this is the line we need to do [self.view insertSubview:self.movieplayer.view belowSubview:self.indicator]; [self.movieplayer play]; } - (void)viewDidAppear:(BOOL)animated { NSLog(@"VIEW DID LOAD"); // Register to receive a notification that the movie is now in memory and ready to play [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieLoadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil]; } -(void)movieLoadStateDidChange:(id)sender { NSLog(@"STATE CHANGED"); if(MPMovieLoadStatePlaythroughOK ) { NSLog(@"State is Playable OK"); NSLog(@"Enough data has been buffered for playback to continue uninterrupted.."); self.indicator.hidden = YES; [ self.indicator stopAnimating]; } } -(NSString *)urlencode:(NSString *)str { NSString *encodeString=(NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)str, NULL, (CFStringRef)@"", kCFStringEncodingUTF8)); return encodeString; }