如何在iPhone中的应用程序中播放youtube/vimeo视频

Avi*_*jit 16 youtube objective-c vimeo uiwebview ios

我正在构建一个应用程序,我想从Youtube,Vimeo,Direct url等网址播放视频.我正在使用AVPlayer制作自定义播放器,从视频剪辑的直接网址(如www.abc/play.mp4)播放视频.但后来我遇到了播放youtube和vimeo视频的巨大问题.在搜索了很多之后,我发现这些链接在不使用UIWebview的情况下我无法播放Youtube链接:

使用MPMoviePlayerController而不是UIWebView播放YouTube视频

在没有UIWebView的情况下播放来自youtube链接的视频

所以我只使用了这段代码:

NSString *youTubeVideoHTML = @"<html><head><style>body{margin:0;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = 'http://www.youtube.com/player_api'; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width:\'100%%\', height:'200px', videoId:\'%@\', events: { 'onReady': onPlayerReady } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>";

NSString *html = [NSString stringWithFormat:youTubeVideoHTML, videoId];
self.embedded_player_view.mediaPlaybackRequiresUserAction = NO;

[self.embedded_player_view loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
Run Code Online (Sandbox Code Playgroud)

现在当我从tableview点击youtube/Vimeo视频链接时,它使用默认播放器即即时播放器播放视频.它没有在UIWebview框架内运行视频.但我想在屏幕的上半部分显示视频,即我的UIWebview框架.那可能吗?

在我的应用程序中,我可以看到:

当点击红色播放按钮时,我可以在快速播放器中全屏显示视频,如下所示:

在此输入图像描述 在此输入图像描述

但我想在同一个webView框架内显示视频,而不是通过快速播放器.它应该像这样玩:

在此输入图像描述

MusicTubePlayTube也是如此.

或者还有其他方法可以达到同样的目的吗?任何帮助将不胜感激.提前致谢.

Seg*_*gev 14

在此输入图像描述在此输入图像描述

我只是用这个课程.

您在其中看到的视频UIViewController可以按当前大小播放.

这是我用过的唯一代码:

UIView *videoContainerView = [[UIView alloc]initWithFrame:CGRectMake(0, 50, 320, 200)];
    [self.view addSubview:videoContainerView];        
    XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"_OBlgSz8sSM"];
    [videoPlayerViewController presentInView:videoContainerView];
    [videoPlayerViewController.moviePlayer play];
Run Code Online (Sandbox Code Playgroud)


Shi*_*aay 7

对于Vimeo播放器,你可以查看这个链接https://github.com/lilfaf/YTVimeoExtractor它在真实播放器中播放视频,如果你想在uiwebview中运行视频,这里是https://stackoverflow.com的代码/ a/15918011/1865424.

在"urlStr"中传递YouTube视频的网址.

//In .h file
UIWebView *videoView;
// In .m file

videoView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 385)];

[self embedYouTube :urlStr  frame:CGRectMake(0, 0, 320, 385)];

[self.view addSubview:videoView];

// methos to embed URL in HTML & load it to UIWebView

- (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];

}
Run Code Online (Sandbox Code Playgroud)

Courtsey: - http://nanostuffs.com/Blog/?p=641

希望这会帮助你.如果这对您没有帮助,请查看以下链接: -

http://blog.softwareispoetry.com/2010/03/how-to-play-youtube-videos-in-your.html

https://gist.github.com/darkredz/5334409

http://maniacdev.com/2012/02/open-source-library-for-easily-playing-a-youtube-video-in-an-mpmovieplayer


Nou*_*991 2

如果你想玩 youtube,这里有 github 上的 youtube 播放器项目的链接,这真的很有帮助。是的,可以在你的 uiwebview 中播放它,只需给 webview 提供 url 并告诉它加载,它不应该在默认播放器中打开,至少据我相信。