使用YTPlayerView在iOS中播放嵌入的YouTube视频失败,出现限制错误

Kev*_* Su 9 youtube youtube-api ios swift ytplayerview

我希望使用https://developers.google.com/youtube/v3/guides/ios_youtube_helper上提供的YTPlayerView在iOS应用中播放嵌入式YouTube视频

当我试图用ID ="RI7-vnrJD3k"(播放这部影片,https://www.youtube.com/embed/Ri7-vnrJD3k),我得到了错误消息"这部影片含有VEVO的内容,它是从限制在某些网站上播放.在YouTube上观看".请注意,播放其他视频时没有此类问题.

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

我可以使用iframe成功地使用以下示例swift代码内联播放视频.但我不知道如何跟踪用户何时开始播放视频以及视频何时完成,因为我想根据这些信息执行其他自定义操作.如果你知道任何解决方案,请你告诉我吗?

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"))
Run Code Online (Sandbox Code Playgroud)

JAL*_*JAL 23

通过设置origin我的属性我playerVars能够播放嵌入的视频.

let playerVars = [
                     "playsinline" : 1,
                     "showinfo" : 0,
                     "rel" : 0,
                     "modestbranding" : 1,
                     "controls" : 1,
                     "origin" : "https://www.example.com"
                 ]
Run Code Online (Sandbox Code Playgroud)

然后loadWithVideoId::像往常一样打电话.

YouTube的


May*_*iya 6

NSDictionary *playerVars = @{
                             @"origin" : @"http://www.youtube.com",
                             };
[self.playerView loadWithVideoId:@"videoId" playerVars:playerVars];`
Run Code Online (Sandbox Code Playgroud)

这个Objective-C版本对我有用。