使用youtube
播放webView
视频时遇到问题。我提供了一个html
字符串作为输入,其中提供了youtube
视频url
。我的webView
已成功加载。同样在webViewDidFinishLoad
的代表中,我可以使用 - webView.request.URL.absoluteString
但奇怪的是,除了webview
的背景颜色外,我看不到任何界面。这发生在iOS 9.0.2.
simulator
iOS 9.0.
的{{1}}工作正常。
此外,在iOS 8.3
的设备上,它工作正常。仅在iOS 9.0.2
的设备上,它无效。
以下是我到目前为止编写的代码 -
NSString *strLink = [NSString stringWithFormat:@"https://www.youtube.com/embed/%@/clean",strVidID];
youTubeVideoHTML = [NSString stringWithFormat:@"\
<html>\
<head>\
<style type=\"text/css\">\
iframe {position:absolute; margin-top:-0px;}\
body {background-color:#000; margin:0;}\
</style>\
</head>\
<body>\
<iframe width=\"100%%\" height=\"100%%\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
</body>\
</html>", strLink];
[self.webVwVideoPlayer loadHTMLString:youTubeVideoHTML baseURL:baseURL];
其中,self.webVwVideoPlayer
是UIWebView
的出口。
此外,根据新的应用传输安全性,我已将plist
文件修改为 -
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>youtube.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow insecure HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
如果有人知道,请告诉我。
答案 0 :(得分:2)
您可以使用XCDYouTubeVideoPlayerViewController。它无缝地将youtube视频添加到您的应用程序,而无需UIWebView。
它使用渐进式下载+ MoviePlayer和AVFoundation框架。只需提供一个youtube视频ID,就可以了。
它支持全屏和全屏非全屏和iOS模拟器上的工作!!!
示例:
XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
答案 1 :(得分:0)
UIWebView *video=[[UIWebView alloc]initWithFrame:CGRectMake(10, 10, SCREEN_WIDTH-20, 180)];
video.scrollView.scrollEnabled = NO;
NSString *strHtml = [NSString stringWithFormat:@"<iframe src=\"https://www.youtube.com/embed/%@\" width=\"280\" height=\"185\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>",@"8syP39rL2kY"];
NSString *htmlStringToLoad = [NSString stringWithFormat:@"https://www.youtube.com/%@",@"8syP39rL2kY"];
[video loadHTMLString:strHtml baseURL:[NSURL URLWithString:htmlStringToLoad]];
[self.view addSubview:video];