【问题标题】:How to play YouTube Movie on an iPhone Application when tapped on UITableViewCell?点击 UITableViewCell 时如何在 iPhone 应用程序上播放 YouTube 电影?
【发布时间】:2009-10-24 11:23:08
【问题描述】:

我是 iPhone 开发的新手,刚开始开发一个包含 UITableView 的应用程序,其中每个单元格都由 webviews 形式的 youtube 视频缩略图组成。为了在 iPhone 上嵌入 YouTube 播放器,我使用了以下代码。

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
 NSString* embedHTML = @"\ 
    <html><head>\ 
 <style type=\"text/css\">\ 
 body {\ 
 background-color: transparent;\ 
 color: white;\ 
 }\ 
 </style>\ 
</head><body style=\"margin:0\">\ 
   <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
   </body></html>";  
NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
if(videoView == nil) {  
  videoView = [[UIWebView alloc] initWithFrame:frame];  
  [self.view addSubview:videoView];  
}  
[videoView loadHTMLString:html baseURL:nil];  

}

现在我可以在 tableviewcell 上看到缩略图,点击缩略图后,YouTube 播放器就会打开并播放电影。

我的缩略图仅占据单元格的一小部分,单元格的其余区域包含一些文字说明。我的问题是我必须准确地点击缩略图才能播放电影。如果我点击单元格上的其他位置,则它不会播放,因为我的缩略图没有延伸到整个单元格。

难道没有办法让电影在didSelectRowAtIndexPath 中播放吗?我看到一些小伙子建议使用 Javascript,但似乎没有人知道使用它来解决这个问题的正确方法。

如果有人能提供帮助,我们将不胜感激。

【问题讨论】:

  • 所以要明确一点,您想知道如何控制 youtube 电影播放吗?更具体地说,当在正在播放的上下文之外进行点击事件之类的事情时?

标签: objective-c iphone


【解决方案1】:

我建议你看看YouTube APIs 并尝试找出你真正的问题是什么。但另一个很好的链接是How To Play YouTube Videos Within an Application。希望我能帮到你。

【讨论】:

  • 感谢 Nathan 的快速回复。实际上,我已经浏览了您几天前发布的链接。让我在这里说清楚。我在播放视频时没有问题。我只需要在我点击单元格的其他位置时让它播放。即使在 youtube API 博客中,似乎也没有人回答这个问题。
  • @suranga:您应该编辑您的问题并使其更清晰,以便人们快速了解您的问题是什么
  • @suranga:请看一下第二个链接。
  • @Nathan:这个博客似乎没有解决我的问题。我也许可以直接获取 Youtube URL 并播放电影。但它会退出我的应用程序并启动我不想要的 iPhone youtube 应用程序。我也想过使用 MPMovie 播放器,但它不支持 youtube vids。
【解决方案2】:

这可能不是最好的解决方案,但它确实有效:

//get your UIWebview in tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
//...

videoView.mediaPlaybackRequiresUserAction = NO;
[videoView loadHTMLString:[self generateHtmlEmbedYouTube] baseURL:nil];

来自Documentation

mediaPlaybackRequiresUserAction

一个布尔值,确定 HTML5 视频是否可以播放 自动或要求用户 开始播放它们。

此解决方案的唯一问题是您必须重新加载 UIWebView。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 2011-11-16
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2011-08-27
    相关资源
    最近更新 更多