首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iPhone应用程序中播放youtube/vimeo视频

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

Stack Overflow用户
提问于 2014-01-13 18:04:41
回答 9查看 35.4K关注 0票数 17

我正在建立一个应用程序,我想播放的视频从网址,如Youtube,Vimeo,直接网址。我正在制作自定义播放器使用AVPlayer播放视频剪辑的直接网址(如www.abc/play.mp4)的视频。但后来我在播放youtube和vimeo视频时遇到了一个很大的问题。在搜索了很多次后,我找到了这些链接,上面写着如果不使用UIWebview,我就不能播放Youtube链接:

Play YouTube videos with MPMoviePlayerController instead of UIWebView

Playing video from youtube link without UIWebView

所以我只用了下面的代码:

代码语言:javascript
复制
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]];

现在当我点击桌面上的youtube/Vimeo视频链接时,它会用默认播放器即quicktime播放器播放视频。它不是在UIWebview帧本身内运行视频。但我想在屏幕的前半部分显示视频,即我的UIWebview帧。这可能吗?

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

当点击红色播放按钮时,我可以在quicktime player中看到全屏视频,如下所示:

,但我想显示的视频在同一个webView帧,而不是通过快速时间播放器。它应该像这样播放:

MusicTubePlayTube中也是如此。

或者,有没有其他方法可以达到同样的效果?任何帮助都将不胜感激。提前谢谢。

EN

回答 9

Stack Overflow用户

发布于 2014-01-15 22:54:10

我使用this class就是为了这个目的。

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

这是我唯一用过的代码:

代码语言:javascript
复制
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];
票数 14
EN

Stack Overflow用户

发布于 2014-01-15 18:09:47

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

在“urlStr”中传递YouTube视频的URL。

代码语言:javascript
复制
//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];

}

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

票数 7
EN

Stack Overflow用户

发布于 2014-01-14 15:52:04

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21088471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档