iOS上的播放受限于来自YouTube API的VEVO视频

jos*_*hap 10 youtube iphone youtube-api ios ytplayerview

我已根据建议使用UIWebView将视频(从YouTube API v3中提取)嵌入到我的iPhone应用中.问题是某些视频(例如来自VEVO的视频)在尝试在设备上播放时会产生以下错误.

此视频包含来自VEVO的内容.限制在某些网站上播放.

这不应该发生,因为像Flipboard和Rockpack这样的应用程序似乎也在使用UIWebView,并且能够播放来自VEVO和其他来源的视频.

我能做错什么?

PS:我知道还有其他帖子以某种方式涉及这个问题,但他们未能解决这个具体问题.

JAL*_*JAL 15

使用YouTube的YTPlayerView for iOS并将origin属性设置为有效的URL可以正常播放许多VEVO视频.

在View Controller中:

@property (weak, nonatomic) IBOutlet YTPlayerView *playerView;

// ..

NSDictionary *playerVars = @{
                             @"playsinline" : @1,
                             @"showinfo" : @0,
                             @"rel" : @0,
                             @"controls" : @1,
                             @"origin" : @"https://www.example.com", // this is critical
                             @"modestbranding" : @1
                             };

[self.playerView loadWithVideoId:@"Ri7-vnrJD3k" playerVars:playerVars];
Run Code Online (Sandbox Code Playgroud)

origin: 起源

没有origin: 没有出身

  • 谢谢,我无法访问Youtube视频,你的解决方案节省了我的一天;) (2认同)

Eug*_*oiu 4

您是否在 VEVO 的所有视频上都遇到错误?\n您确定您尝试播放的视频是可嵌入的吗?\n添加带有“true”值的“videoEmbeddable”参数,这样您就只能处理可以嵌入的视频。

\n\n
\n

videoEmbeddable 参数可让您将搜索限制为仅\n 可嵌入网页的视频。如果您指定此参数的值,则还必须将类型参数的值设置为视频。

\n\n

可接受的值为:任何 \xe2\x80\x93 返回所有视频,无论是否可嵌入。\n true \xe2\x80\x93 仅检索可嵌入视频。

\n
\n\n

来源:https ://developers.google.com/youtube/v3/docs/search/list#videoEmbeddable

\n