我使用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];
}