2011-10-13 59 views
2

有谁知道为什么以下这些工作如此完美以至于4.3,现在无法与iOS5 SDK一起工作(并且有办法让它工作)?我有一个通用的视频播放器,使用这种方案播放多种格式和Youtube,并希望继续使用它。它只是不加载视频(即使webview完成加载)。在iOS5中,它仍然可以加载和播放Youtube视频,不需要HTTP Live Streams或非Youtube视频(即mp4's)。iOS5,uiwebview和视频

如果我使用iOS4.3构建并在iOS5设备(iPad)上运行它,它可以正常工作。我用iOS5 SDK构建时失败。注:我保留XCODE 3.x和iOS 4.3以防万一。

另一方面,我可以让HTML5视频标签播放实时流和mp4,但无法调整大小,无论使用多少宽度和高度。

总之,这里是代码(UIWebView中):

static NSString* kEmbedHTML = @"<html><head><meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no, width=%0.0f, height=%0.0f\"/></head><body style=\"background:#fff;margin-top:0px;margin-left:0px\"><div><object width=\"%0.0f\" height=\"%0.0f\"><param name=\"movie\" value=\"%@\"></param><param name=\"wmode\"value=\"transparent\"></param><embed id=\"yt\" airplay=\"allow\" src=\"%@\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"%0.0f\" height=\"%0.0f\"></embed></object></div></body></html>"; 

....

- (void)layoutSubviews { 
[self stringByEvaluatingJavaScriptFromString: 
[NSString stringWithFormat:@"controls.width = %0.0f; controls.height = %0.0f", kDefaultWidth,kDefaultHeight]]; 
} 

....

NSString* html = [NSString stringWithFormat:kEmbedHTML, kDefaultWidth, kDefaultHeight, kDefaultWidth, kDefaultHeight, _urlPath, _urlPath, kDefaultWidth, kDefaultHeight]; 
[self loadHTMLString:html baseURL:nil] ; 

回答

0

我能找到的唯一解决方案是嗅探类型URL(即Youtube),并使用loadRequest来处理非Youtube的东西,而loadHTMLString则使用Youtube的东西。

漂亮哈克,但它适用于我,并让我过去这个iOS5的悲伤。

0

尝试用“取代 ”嵌入“ iframe“在您的HTML

如果它适用于您的非YouTube内容,您可以通过在链接代码中将“watch?v =”替换为“嵌入/”来使您的YouTube链接正常工作

+2

它不适用于iOS 5.还有其他解决方法? – SkyEagle888