使用YTPlayerView在iOS中播放embedded的YouTubevideo失败,并显示限制错误

我想使用YTPlayerView在iOS应用中播放embedded的YouTubevideo, url为: https://developers.google.com/youtube/v3/guides/ios_youtube_helper

当我尝试播放ID为“Ri7-vnrJD3k”( https://www.youtube.com/embed/Ri7-vnrJD3k )的video时,收到错误消息“此video包含VEVO提供的内容。在某些网站上播放,在YouTube上观看“。 请注意,播放其他video时不存在此类问题。

有没有办法解决上述问题?

我可以使用iframe以下面的示例swift代码成功地播放video。 但是我不知道如何跟踪用户何时开始播放video,以及video何时完成,因为我想根据这些信息进行其他自定义操作。 如果你知道任何解决scheme,你能否让我知道?

let frame = CGRectMake(0,0, self.view.frame.size.width, 240) playerView = UIWebView(frame: frame) playerView.allowsInlineMediaPlayback = true var embedHTML = NSString(format: "<html><head><style type=\"text/css\"> body { background-color: transparent; color: white; margin:0; width:100%%; height:100%% } </style> </head><body style=\"margin:0\"> <iframe width=100%% height=100%% src=\"%@?feature=player_detailpage&playsinline=1\" frameborder=\"0\" ></iframe> </body></html>", self.url.text) self.view.addSubview(playerView) playerView.loadHTMLString(embedHTML as String, baseURL: NSURL(string: "http://www.youtube.com")) 

通过在playerVars设置origin属性,我可以播放embedded的video。

 let playerVars = [ "playsinline" : 1, "showinfo" : 0, "rel" : 0, "modestbranding" : 1, "controls" : 1, "origin" : "https://www.example.com" ] 

然后loadWithVideoId::调用loadWithVideoId::

YouTube的

 NSDictionary *playerVars = @{ @"origin" : @"http://www.youtube.com", }; [self.playerView loadWithVideoId:@"videoId" playerVars:playerVars];` 

这个Objective-C版本适合我。

YTPlayerView inturn使用iframe来播放YouTubevideo。 您不能使用iframe播放受版权保护的YouTubevideo,您可以使用uiwebView将其作为替代品播放