在iOS App中嵌入youtube视频

时间:2013-09-18 13:11:18

标签: iphone objective-c youtube ios-simulator

每当我按下按钮时,我想将youtube视频嵌入到webviewer中。我有这个代码

- (IBAction)testBtn:(id)sender {

    NSString *code = @"<iframe width=\"560\" height=\"315\" src=\"//www.youtube.com/embed/1iBIcJFRLBA\" frameborder=\"0\" allowfullscreen></iframe>";

    [[self youtubeWebPlayer]loadHTMLString:code baseURL:nil];

}

我的问题是,每按一下按钮都没有任何反应。 webviewer仍为空白。

我在代码中添加了断点,以便仔细检查我的应用程序是否调用了代码并确实调用了它。

编辑* * *

我已经通过替换

解决了这个问题
    [[self youtubeWebPlayer]loadHTMLString:code baseURL:nil];

    [[self youtubeWebPlayer]loadHTMLString:code baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];

2 个答案:

答案 0 :(得分:11)

试试这个,这是完美的。 您使用youtube Url作为“http://www.youtube.com/v/YOU_TUBE_VIDEO_ID”。

 UIWebView * youTubeWebView=[[UIWebView alloc]initWithFrame:CGRectMake(0,0,320,320)];
    youTubeWebView.allowsInlineMediaPlayback=YES;
    youTubeWebView.mediaPlaybackRequiresUserAction=NO;
    youTubeWebView.mediaPlaybackAllowsAirPlay=YES;
    youTubeWebView.delegate=self;
    youTubeWebView.scrollView.bounces=NO;

    NSString *linkObj=@"http://www.youtube.com/v/1iBIcJFRLBA";//@"http://www.youtube.com/v/6MaSTM769Gk";
    NSLog(@"linkObj1_________________%@",linkObj);
    NSString *embedHTML = @"\
    <html><head>\
    <style type=\"text/css\">\
    body {\
    background-color: transparent;color: white;}\\</style>\\</head><body style=\"margin:0\">\\<embed webkit-playsinline id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \\width=\"320\" height=\"320\"></embed>\\</body></html>";

    NSString *html = [NSString stringWithFormat:embedHTML, linkObj];
    [youTubeWebView loadHTMLString:html baseURL:nil];
    [self.view addSubview:youTubeWebView];

答案 1 :(得分:0)

如果你想在swift

中嵌入管视频,可以添加此代码

let webViewYouTube = UIWebView()

    webViewYouTube.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.width/2)

    webViewYouTube.allowsInlineMediaPlayback = true
    webViewYouTube.mediaPlaybackRequiresUserAction = false
    webViewYouTube.mediaPlaybackAllowsAirPlay = true
    webViewYouTube.delegate = self as? UIWebViewDelegate
    webViewYouTube.scrollView.bounces = false
    webViewYouTube.scrollView.isScrollEnabled = false
    let linkObj = "https://www.youtube.com/watch?v=swIoyaBUpEg"

    print("linkObj1_________________\(linkObj)")
    let embedHTML = "    <html><head>    <style type=\"text/css\">    body {    background-color: transparent;color: white;}\\</style>\\</head><body style=\"margin:0\">\\<embed webkit-playsinline id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \\width=\"320\" height=\"320\"></embed>\\</body></html>"
    let html = String(format: embedHTML, linkObj)
    webViewYouTube.loadHTMLString(html, baseURL: nil)
    view.addSubview(webViewYouTube)