在不使用UIWebView的情况下在iPhone应用中播放YouTube视频?

时间:2012-01-30 06:27:57

标签: iphone ios uiwebview youtube mpmovieplayercontroller

我想从我的iPhone应用中播放YouTube视频。我必须尝试使用​​以下代码在我的iPhone应用中播放YouTube视频

[self playVideo:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q" frame:CGRectMake(20, 70, 280, 250)];

- (void)playVideo:(NSString *)urlString 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, urlString, frame.size.width, frame.size.height];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.view addSubview:videoView];
    [videoView release];
    NSLog(@"%@",html);
}

但是,这段代码对我不起作用。我也试过MPMoviePlayerController代码,

NSURL *fileURL = [NSURL URLWithString:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q"];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)]; 
[self.view addSubview:moviePlayerController.view];  
moviePlayerController.fullscreen = YES;  
[moviePlayerController play];

这对我也不起作用。任何人都可以告诉我我做错了什么,并建议我任何想法?我想在MPMoviewPlayerController中播放YouTube视频,而不是使用UIWebView。提前致谢。

5 个答案:

答案 0 :(得分:10)

只需使用XCDYouTubeVideoPlayerViewController即可。它无缝地将youtube视频添加到您的应用中,而无需UIWebView

它使用渐进式下载+ MoviePlayerAVFoundation框架。只需提供一个YouTube视频ID就可以了。

它支持全屏和全屏非全屏和在iOS模拟器上工作!!!

示例:

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];

答案 1 :(得分:8)

现在YouTube Data API (v3)可以使用YTPlayerView课程。

查看Using the YouTube Helper Library to embed YouTube videos in your iOS application

它提供了有关如何安装帮助程序库以及将YTPlayerView合并到故事板中的全面说明。

答案 2 :(得分:7)

Mr.Yuvaraj.M您的上述代码是正确的。请在iPhone / iPod touch设备中运行该项目。 youtube视频可能不支持/不在Simulator中工作。请检查一下。感谢。

答案 3 :(得分:1)

取代您正在使用的HTML嵌入代码,转到YouTube网站,查找视频,使用分享按钮,然后使用“嵌入”按钮获取嵌入HTML的示例。使用该模式嵌入视频而不是当前使用的Flash版本。

答案 4 :(得分:1)

以迅速的4.1播放youtube视频

添加Pod pod'XCDYouTubeKit'

在ViewController中导入XCDYouTubeKit

func playYoutubeVideo(){

let strUrl = "https://www.youtube.com/watch?v=9m_K2Yg7wGQ"
if let range = strUrl.range(of: "=") {
        let strIdentifier = strUrl.substring(from: range.upperBound)
        print("Identifier:\(strIdentifier)")
        let videoPlayerViewController = 
        XCDYouTubeVideoPlayerViewController(videoIdentifier: strIdentifier)
        videoPlayerViewController.present(in: viewYTVideo)
        videoPlayerViewController.moviePlayer.play()
    }
}