【发布时间】:2014-02-01 00:46:50
【问题描述】:
我正在构建一个应用程序,我想在其中播放来自 Youtube、Vimeo、Direct url 等 url 的视频。我正在使用 AVPlayer 制作自定义播放器,以从视频剪辑的直接 url 播放视频(如 www.abc/play.mp4)。但后来我在播放 youtube 和 vimeo 视频时遇到了一个大问题。经过大量搜索后,我发现这些链接在不使用 UIWebview 的情况下无法播放 Youtube 链接:
Play YouTube videos with MPMoviePlayerController instead of UIWebView
Playing video from youtube link without UIWebView
所以我只使用了这段代码:
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]];
现在,当我从 tableview 中单击 youtube/Vimeo 视频链接时,它会使用默认播放器(即 quicktime 播放器)播放视频。它没有在 UIWebview 框架本身内运行视频。 但我想在屏幕的前半部分显示视频,即我的 UIWebview 框架。这可能吗?
在我的应用中,我可以看到:
点击红色播放按钮时,我可以在 quicktime 播放器中全屏看到视频,如下所示:
但我想在同一个 webView 框架内显示视频,而不是通过快速播放器。它应该像这样播放:
或者还有其他方法可以达到同样的效果吗?任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
你有解决这个问题的办法吗?我也在尝试显示来自 youtube、vimeo 的视频并面临同样的问题。提前致谢。
-
不。为 youtube 提供了一些解决方案,但很抱歉不适用于 vimeo。 @AkbariDipali
-
好的。感谢您的回复。
标签: ios objective-c youtube uiwebview vimeo