2012-08-24 3 views
0

GDataFeedYouTubeVideo를 사용하여 이미지와 제목이있는 테이블 뷰를 채 웁니다. 이 작동합니다. 셀을 선택한 후에 비디오를 재생하고 싶습니다. 피드에서 URL을 사용하여 MPMoviePlayer로 전달하고 화면이 검게 변하며 moviePlaybackDidFinish가 호출되었지만 비디오를 재생하지 않고 다시 tableview를 표시하기 때문에로드되는 것처럼 보입니까? 피드의 URL의 예는 다음과 같습니다MPMoviePlayerController가 GDataFeedYouTubeVideo에서 URL을 재생하지 않습니다.

https://www.youtube.com/v/o7QAMH3qRvU?version=3&f=user_uploads&app=youtube_gdata

이 브라우저에서가 아니라 MPMoviePlayer에서 작동합니까? 이걸 알아 내도록 도와주세요. 차라리 피드에 의해 반환 된 URLString을 대체하거나 제거하기위한 해킹 루틴을 작성하지 않아도됩니다. ARC & 스토리 보드를 사용하고 있습니다. 내가 셀을 선택 두 번째로 내가 얻을 : 키 값 관계자는 아직 등록 된 동안 클래스 AVPlayerItem의

인스턴스의 0xce6a7b0가 해제되었다 ...

예 내가에서 제안 된 것을 시도 않았다 iOS 5 an instance of AVPlayerItem was deallocated 그리고 이것으로 해결되지 않았습니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    YouTubeVideo *item = [searchList objectAtIndex:indexPath.row]; 

    if (item != nil) { 
     NSURL *url = [NSURL URLWithString:item.URLString]; 
     moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 

     [[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(moviePlaybackDidFinish:) 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:moviePlayer]; 
     moviePlayer.controlStyle = MPMovieControlStyleDefault; 
     moviePlayer.shouldAutoplay = YES; 
     [self.view addSubview:moviePlayer.view]; 
     [moviePlayer setFullscreen:YES animated:YES]; 
    } 
} 

- (void)moviePlaybackDidFinish:(NSNotification *)notification { 
    MPMoviePlayerController *player = [notification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:player]; 

    if ([player respondsToSelector:@selector(setFullscreen:animated:)]) 
     [player.view removeFromSuperview]; 
} 

답변

관련 문제