0

내가, 간단한을 heres 코드를하겠습니다 재생되지 :MPMoviePlayerViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
VideoEntry *entry = [videoEntries objectAtIndex:indexPath.row]; 

[HCYoutubeParser h264videosWithYoutubeURL:[NSURL URLWithString:entry.url] completeBlock:^(NSDictionary *videoDictionary, NSError *error) { 
    NSArray *urls = [videoDictionary allValues]; 
    NSURL *url = [NSURL URLWithString:[urls objectAtIndex:0]]; 
    [mp.moviePlayer setAllowsAirPlay:YES]; 
    [mp.moviePlayer setContentURL:url]; 
    [mp.moviePlayer prepareToPlay]; 
    [mp.moviePlayer play]; 
    [self presentMoviePlayerViewControllerAnimated:mp]; 
}]; 

}

MP가 MPMoviePlayerViewController이다. 보기 컨트롤러가 제공되지만 영화가 시작되지 않으면 "로드 중 ..."이라고 말한 다음 100 % 확신한다고 말하기 전에 링크가 작동하는지 확인하십시오.

감사합니다.

+0

? 내가 ARC를 사용 – limon

+0

, 나는 그냥 비 원자 강한 속성을 만든 – user1734282

답변

1

완료 블록이 주 스레드에서 호출되지 않습니다 때문에이 작동하지 않습니다. 당신은 주 스레드에서 강제로 코드의 실행을 해결할 수 : u는 u는 당신의 MP를 인스턴스화 않았다 어떻게 ARC를 사용하는

[HCYoutubeParser h264videosWithYoutubeURL:[NSURL URLWithString:entry.url] 
          completeBlock:^(NSDictionary *videoDictionary, NSError *error) { 
    dispatch_async(dispatch_get_main_queue(), ^(void) { 
     NSArray *urls = [videoDictionary allValues]; 
     NSURL *url = [NSURL URLWithString:[urls objectAtIndex:0]]; 
     [mp.moviePlayer setAllowsAirPlay:YES]; 
     [mp.moviePlayer setContentURL:url]; 
     [mp.moviePlayer prepareToPlay]; 
     [mp.moviePlayer play]; 
     [self presentMoviePlayerViewControllerAnimated:mp]; 
    }); 
}]; 
+0

예, 대단히 감사합니다! – user1734282