我正在使用https://github.com/gilesvangruisen/Swift-YouTube-Player在我的应用中读取YouTube视频,例如:https://www.youtube.com/watch?v=Bw0tjdBgKBY
使用WEB浏览器可以很好地运行,但是使用该库时,会出现一条消息,提示:
该视频不可用
在播放视频之前,我可以看到视频预览,但是当视频开始播放时,消息会出现在我的应用中。
使用此类库时,是否存在YouTube锁定的视频内容? 该库似乎无法提供FIFATV发布的每个视频...
我正在youtubePlayer中设置视频,如下所示:
youtubePlayerView.loadVideoURL(URL(string: "https://www.youtube.com/watch?v=PBTFz-9bozc"))
其他非FIFATV的视频正在运行。
关于这个问题有什么想法吗?
答案 0 :(得分:2)
要了解流媒体发生了什么,您应该添加另一个参数,因此,在Swift-YouTube-Player示例之后,请更正此部分并添加origin
参数:
@IBAction func loadVideo(sender: UIButton) {
playerView.playerVars = [
"playsinline": "1",
"controls": "0",
"showinfo": "0",
"origin": "https://www.youtube.com"
]
playerView.loadVideoID("wQg3bXrVLtg")
}
如果添加此参数,框架将避免使用空白页作为流的源来源并使用您的值,但实际上,请看一下官方来源:
if (![playerVars objectForKey:@"origin"]) {
self.originURL = [NSURL URLWithString:@"about:blank"];
} else {
self.originURL = [NSURL URLWithString: [playerVars objectForKey:@"origin"]];
}
现在,您应该收到类似以下消息:
“该视频包含FIFA的内容,该内容已被阻止在此网站或应用上显示。在YouTube上观看”
阅读Youtube API docs时,您还可以将http://example.com
用作值:
在搜索enablejsapi
的地方会发现:
不幸的是,谈到YT iOS框架,您可以搜索此参数,但是您会发现 player.js 文件中的它已经设置为1 ,如果您会尝试将其设置在playerVars
内部,不会发生任何事情。
因此,它仍然是(暂时)一个Youtube iOS框架错误,可能不是一个适当的错误,但是YouTube员工应在其政策中增加有关iOS内容变化的另一条规则,我记得VEVO和UMG内容的一部分(还有其他错误尚未解决。。)