Могу ли я воспроизводить видео с YouTube в встроенном (не полноэкранном) интерфейсе UIWebView?
Я везде искал, как это сделать, и пока не нашел ответа.
Можно ли воспроизводить видео с YouTube в UIWebView на встроенном iPhone, то есть не в полноэкранном режиме?
Я знаю, что iPhone не поддерживает флеш, но youtube поддерживает html5 и имеет видео h.264, не так ли? не должен ли я это сделать?
Я установил allowInlineMediaPlayback в YES, но все же он играет в полноэкранном режиме.
Ответы
Ответ 1
Да, вы можете установить свойство в UIWebView
webView.allowsInlineMediaPlayback=YES;
И вам нужно добавить & playinline = 1 в код внедрения iframe YouTube.
<iframe webkit-playsinline width="200" height="200" src="https://www.youtube.com/embed/GOiIxqcbzyM?feature=player_detailpage&playsinline=1" frameborder="0"></iframe>
Протестировано на iPhone 4S под управлением iOS 6.1.2 работает как шарм.
Ответ 2
allowInlineMediaPlayback Свойства интерфейса UIWebView
Логическое значение, определяющее, воспроизводится ли видеоролик HTML5, или использовать встроенный полноэкранный контроллер. (Developer.apple.com)
Вы можете использовать эту функцию на iPad. На iPhone такой функции нет. Если вы попытаетесь воспроизвести видео с uiwebview на iPhone, он будет воспроизводиться в полноэкранном режиме.
Ответ 3
Да, вы можете играть в любой встроенный видео встроенный интерфейс UIWebView с помощью " playinline = 1".
Исходный код:
NSMutableString *html = [[NSMutableString alloc] initWithCapacity:1] ;
[html appendString:@"<html><head>"];
[html appendString:@"<style type=\"text/css\">"];
[html appendString:@"body {"];
[html appendString:@"background-color: transparent;"];
[html appendString:@"color: white;"];
[html appendString:@"}"];
[html appendString:@"</style>"];
[html appendString:@"</head><body style=\"margin:0\">"];
[html appendString:@"<iframe webkit-playsinline width=\"300\" height=\"220\" src=\"http://www.ustream.tv/embed/23192315?html5ui&showtitle=false&playsinline=1\" frameborder=\"0\"></iframe>"];
[html appendString:@"</body></html>"];
[self.webViewRef loadHTMLString:html baseURL:nil];