2012-08-24 43 views
0

我使用GDataFeedYouTubeVideo來填充圖像和標題的tableview。這工作。我想在選中單元格後播放視頻。我正在使用來自Feed的網址傳遞給MPMoviePlayer,它看起來像加載,因爲屏幕變黑,moviePlaybackDidFinish被調用,但不播放視頻並返回顯示tableview?從進料的一個例子網址爲:MPMoviePlayerController不播放來自GDataFeedYouTubeVideo的URL

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

這樣確實可以從瀏覽器,但不是在MPMoviePlayer?請幫我把這個弄清楚。我寧願不必編寫一些hack例程來替換或移除由feed返回的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]; 
} 

回答

相關問題