не могу поток с YouTube - PullRequest
0 голосов
/ 23 марта 2012

Я пытаюсь потоковое видео с YouTube, когда пользователь выбирает строку в моем табличном представлении, вот код:

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

  NSString *videoURLString = [self.listaVideos objectAtIndex:[indexPath row]];
        NSURL *videoURL = [NSURL URLWithString:videoURLString];

        self.theMovie = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(moviePlayBackDidFinish:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:[self.theMovie moviePlayer]];

        [self.view addSubview:self.theMovie.view];
        [self.theMovie setWantsFullScreenLayout:NO];
        [self presentMoviePlayerViewControllerAnimated:theMovie];
        [[self.theMovie moviePlayer] play];
}



-(void)moviePlayBackDidFinish:(NSNotification*)notification
{
    NSLog(@"ENded");
}

И ошибка: Unbalanced calls to begin/end appearance transitions for <MPMoviePlayerViewController: 0x7a256a0>.

Ответы [ 3 ]

0 голосов
/ 24 марта 2012

MPMoviePlayerViewController не может транслировать видео YouTube.

О, также то, что сказал Амит Шах (удаление addSubview: позаботится о несбалансированных вызовах, но не о невозможности воспроизведения видео).

0 голосов
/ 24 марта 2012

Ниже приведен код, по которому видео с URL-адреса YouTube. Если вы действительно ищете потоковое видео с Youtube, тогда положитесь на приведенный ниже код, это очень просто, и вам не нужно много заботиться об обработке событий, буферизации и т.д ...

@interface VideoPlayerContrl : UIViewController {

        IBOutlet UIWebView *youtubeVideo;

}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *htmlString = @"<html><head>\n"
    "<meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head>\n"
    "<body style=\"background:#F00;margin-top:0px;margin-left:0px\">\n"
    "<div><object width=\"212\" height=\"172\">\n"
    "<param name=\"movie\" value=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"></param>\n"
    "<param name=\"wmode\" value=\"transparent\"></param>\n"
    "<embed src=\"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos&c=ytapi-my-clientID&d=nGF83uyVrg8eD4rfEkk22mDOl3qUImVMV6ramM\"\n"
    "type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"247\" height=\"178\"></embed>\n"
    "</object></div></body></html>\n";

    [youtubeVideo loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"https://s3.amazonaws.com/adplayer/colgate.mp4"]];

}

Надеюсь, что бы решить вашу проблему:)

0 голосов
/ 24 марта 2012

Попробуйте удалить

    [self.view addSubview:self.theMovie.view];

Похоже, вы добавляете это представление, а затем представляете его. (Если вы не хотите представлять это, удалите эту строку вместо этого)

...