iOS >> 使用UIWebView嵌入YouTube视频 - 视频无法播放

4

我正在尝试在我的应用程序中播放YouTube视频。看起来我已经找到了正确的位置,但是视频没有播放。我在实际设备上运行应用程序(而不是模拟器)。

这是我正在使用的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *htmlString = @"<html><head>\
    <meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 320\"/></head>\
    <body style=\"background:#000;margin-top:0px;margin-left:0px\">\
    <iframe id=\"ytplayer\" type=\"text/html\" width=\"320\" height=\"240\"\
    src=\"http://www.youtube.com/embed/VIDEO_ID&feature?autoplay=1\"\
    frameborder=\"0\"/>\
    </body></html>";

//VIDEO_ID holds the video embedded code I get from YouTube

    [self.webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:@"http://www.youtube.com"]];

}

YouTube播放器正在加载,但是当我点击“播放”按钮时,出现“此视频当前不可用”的提示:

enter image description here

我测试了嵌入的视频ID(复制并粘贴到网页中),它可以找到相关视频(即我认为我有正确的视频ID)。

有人知道我做错了什么吗?


似乎该特定视频无法在移动设备上观看,或者有其他问题。您尝试过另一个视频ID吗? - Rob
嗨,罗布,我尝试了几个不同的视频。我怎样才能知道某个视频是否“适用于移动设备”? - Ohad Regev
你有没有解决它的运气?我也卡在同样的问题上了! - hariseldon78
有人解决了这个问题吗?我也卡在同样的问题上了。 - A. Shukri
2个回答

1
我遇到了同样的问题,是因为我在我的Webview中使用了自定义用户代理,所以Youtube没有提供适当的视频。

你能再详细解释一下吗?我卡在这里了。 - nr5
@Jango 你的应用程序是否曾经为你的 Web 视图设置过自定义用户代理?例如,当你的应用程序连接到 Web 服务器时,你的应用程序会响应与默认值“我是 iPhone”不同的内容吗?实现这个功能的代码看起来像这样:NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"你的用户代理", @"UserAgent", nil];[[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];通常情况下,这个代码会在你的 AppDelegate 中更改,但并非总是如此。 - Mark Munoz

0

你的问题在于你使用的URL:

http://www.youtube.com/embed/VIDEO_ID&feature?autoplay=1

应该是:

http://www.youtube.com/embed/VIDEO_ID?feature&autoplay=1

这是因为URL本身是http://www.youtube.com/embed/VIDEO_ID,参数是feature和autoplay=1。

祝好 Morten


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接