2011-10-13 61 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