2012-02-15 262 views
1

與事實開始:嵌入的Youtube視頻顯示黑屏

  1. 我使用的是流行的代碼段創建一個對象並將其加載到網頁視圖。
  2. 我正在使用設備。
  3. 我測試過,通過向它添加標籤來加載webview,這一切都很好。

問題是,嵌入對象顯示空白,顯然不可點擊,我一直在谷歌搜索了幾個小時,我似乎無法看到爲什麼發生這種情況。我甚至創建了一個html文檔並使用我的電腦瀏覽器進行了測試,縮略圖顯示效果不錯,但我無法在web視圖中顯示它,請提供任何幫助?

更新用於進一步的信息,粘貼視頻的網址,我得到了它以某種方式工作,但我使用似乎並沒有產生一個「乾淨」的視頻網址的代碼,而是產生這樣的:https://www.youtube.com/v/pzhL7jpsiNw?version=3&f=user_uploads&app=youtube_gdata

隨着我的試驗和錯誤的嘗試,我意識到我需要的是這樣的:http://www.youtube.com/watch?v=pzhL7jpsiNw

產生的第一個,從各種GDATA教程我已經瀏覽拍攝的代碼是這樣的。

GDataEntryBase *entry2 = [[feed entries] objectAtIndex:indexPath.row]; 
NSArray *contents = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents]; 
[self embedYouTube:[NSURL URLWithString:[[contents objectAtIndex:0] URLString]] frame:CGRectMake(0, 0, 320, 200)]; 

[NSURL URLWithString:[[contents objectAtIndex:0] URLString]]生產環節的 '冗長' 的版本。

除了開始操縱字符串本身,我認爲它很髒,有沒有一種方法(我對GDATA API有點無知,沒有時間深入它的atm)來獲得所需的URL?

回答

0

我知道你說過你不想進行字符串操作,但我個人認爲通過分割字符串?剝離GET參數是特別髒的。

例如:

NSString *dirty = @"https://www.youtube.com/v/pzhL7jpsiNw?version=3&f=user_uploads&app=youtube_gdata"; 
NSString *clean = [[dirty componentsSeparatedByString:@"?"] objectAtIndex:0]; 
NSLog(@"%@",clean); 

使你https://www.youtube.com/v/pzhL7jpsiNw

如果您需要,您可以通過拆分/v/來獲取視頻ID。

NSString *vid = [[clean componentsSeparatedByString:@"/v/"] objectAtIndex:1]; 
NSString *newURL = [NSString stringWithFormat:@"http://www.youtube.com/watch?v=%@",vid]; 
+0

厭倦了試圖找到'正確的方式'結束了這樣做,感謝您的時間 – magtak 2012-02-15 17:25:44

0

嘿傢伙只是發現一點點的修復。我已經加入嵌入式視頻

?html5=1 

則視頻將呈現HTML5播放器,而不是Flash播放器。

謝謝。