Как воспроизвести фильм YouTube на iPhone-приложении, если нажать на UITableViewCell? - PullRequest
5 голосов
/ 24 октября 2009

Я новичок в разработке для iPhone и только начал разрабатывать приложение, содержащее UITableView, где каждая ячейка состоит из миниатюр видео на YouTube в виде веб-просмотров. Для встраивания YouTube Player в iPhone я использовал следующий фрагмент кода.

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
 NSString* embedHTML = @"\ 
    <html><head>\ 
 <style type=\"text/css\">\ 
 body {\ 
 background-color: transparent;\ 
 color: white;\ 
 }\ 
 </style>\ 
</head><body style=\"margin:0\">\ 
   <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
   </body></html>";  
NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
if(videoView == nil) {  
  videoView = [[UIWebView alloc] initWithFrame:frame];  
  [self.view addSubview:videoView];  
}  
[videoView loadHTMLString:html baseURL:nil];  

}

Теперь, когда я вижу миниатюру в ячейке просмотра таблицы, и когда я нажимаю на миниатюру, открывается проигрыватель YouTube и воспроизводится фильм.

Моя миниатюра занимает только небольшую часть ячейки, а остальная часть ячейки содержит некоторые текстовые описания. Моя проблема в том, что я должен нажать точно на миниатюру для воспроизведения фильма. Если я коснусь другого места в ячейке, оно не будет воспроизводиться, потому что мой эскиз не распространяется по всей ячейке.

Нет ли способа заставить фильм играть в didSelectRowAtIndexPath? Я видел, как некоторые парни предлагают использовать Javascript, но, похоже, никто не знает, как правильно использовать его для этой проблемы.

Высоко ценю, если кто-нибудь может помочь.

Ответы [ 2 ]

3 голосов
/ 24 октября 2009

Я предлагаю вам взглянуть на API YouTube и попытаться выяснить, в чем ваша настоящая проблема. но другая хорошая ссылка - Как воспроизводить видео YouTube в приложении . Надеюсь, я помогаю тебе.

0 голосов
/ 03 марта 2011

Возможно, это не лучшее решение, но оно работает:

//get your UIWebview in tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
//...

videoView.mediaPlaybackRequiresUserAction = NO;
[videoView loadHTMLString:[self generateHtmlEmbedYouTube] baseURL:nil];

Из Документации

mediaPlaybackRequiresUserAction

Булево значение, которое определяет могут ли видео HTML5 воспроизводиться автоматически или потребовать от пользователя начать играть в них.

Единственная проблема этого решения заключается в том, что вам нужно перезагрузить UIWebView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...