2014-09-16 16 views
9

मुझे उन समस्याओं का सामना करना पड़ रहा है जिन्हें मैं समझ नहीं पा रहा हूं।आईओएस 8 यूट्यूब वीडियो एम्बेड

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    CGFloat width = self.view.frame.size.width; 
    CGFloat height = self.view.frame.size.height; 
    UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
    NSString* embedHTML = @"\ 
    <html><head><meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0; user-scalable=0;\"/>\ 
    <style type=\"text/css\">\ 
    body {\ 
    background-color: transparent;\ 
    color: black;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0;\">\ 
    <embed id=\"yt\" src=\"https://www.youtube.com/v/M7lc1UVf-VE?hd=1\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
    </body></html>"; 
    NSString *html = [NSString stringWithFormat:embedHTML, width, height]; 
    [webview loadHTMLString:html baseURL:nil]; 
    [self.view addSubview:webview]; 
} 

जब मैं iOS 8 के लिए Xcode 6 में एक ही कोड का निर्माण तो वेबव्यू में वीडियो प्रदर्शित लेकिन छोटे करने के लिए तरीका है:

मैं इस कोड है कि iOS 7 Xcode 5 में पूरी तरह से काम करता है।

क्या कोई यह समझा सकता है कि यहां क्या हो रहा है और मैं इसे कैसे दूर कर सकता हूं?

+0

क्यों https://github.com/0xced/XCDYouTubeKit का उपयोग नहीं करते? – thijsai

+0

एक कारण हो सकता है, क्योंकि यह एक अप्रिय ऐप और वह पृष्ठ होना चाहिए जो आप राज्यों से जोड़ रहे हैं: "चेतावनी: XCDYouTubeKit YouTube की सेवा की शर्तों के विरुद्ध है।" लेकिन वैसे भी धन्यवाद। – berliner

+0

@berliner क्या आपको तीसरी पार्टी लाइब्रेरी के अलावा इस समस्या का समाधान मिला? – ViruMax

उत्तर

4

मैं एक ही समस्या थी, मैं इस समाधान

https://developers.google.com/youtube/v3/guides/ios_youtube_helper

भी YTPlayerView.m में

(~ लाइन: 610) का उपयोग कर हल इसे बदलता कोशिश:

[playerParams setValue:[NSString stringWithFormat: @"%0.00f", self.frame.size.height] forKey:@"height"]; 
// [playerParams setValue:@"100%" forKey:@"height"]; 
[playerParams setValue:[NSString stringWithFormat: @"%0.00f", self.frame.size.width] forKey:@"width"]; 
// [playerParams setValue:@"100%" forKey:@"width"]; 

आशा इस मदद

+0

एचएम, टिप के लिए धन्यवाद, लेकिन मैं वास्तव में क्या बदल गया है में अधिक दिलचस्पी है जिसने मेरा कोड अब विफल कर दिया है। मैं खुद को एक आईफ्रेम बना सकता हूं, लेकिन मैं समझना चाहूंगा कि एम्बेड तकनीक अब और क्यों काम नहीं कर रही है, या अधिक सटीक क्यों मैं आईओएस 8 में वीडियो के आकार को नियंत्रित नहीं कर सकता। या मैं इसे कैसे नियंत्रित कर सकता हूं। – berliner

+0

यह प्लेयर निजी वीडियो नहीं चला सकता है, लेकिन यह असूचीबद्ध वीडियो चला सकता है। चूंकि यह लाइब्रेरी मौजूदा आईफ्रेम प्लेयर को लपेटती है, इसलिए खिलाड़ी का व्यवहार किसी मोबाइल ब्राउज़र में वेबपृष्ठ पर एम्बेड किए गए प्लेयर के समान होना चाहिए। –

2

मैंने थोड़ी देर के लिए इस पर काम किया और एक समाधान निकाला जो मेरे उद्देश्यों के लिए आश्चर्यजनक रूप से काम करता है। मेरे मामले में क्या हो रहा था किसी कारण से आईफ्रेम कुछ पैडिंग का उपयोग कर रहा था जिसे त्यागने की आवश्यकता थी।

यह भी ध्यान रखना महत्वपूर्ण है कि यदि आप बेस यूआरएल के रूप में youtube.com को शामिल करते हैं तो यह बहुत तेज लोड होगा।

अपने स्टोरीबोर्ड में UIWebView बनाएं और @property को उससे कनेक्ट करें, फिर नीचे संदर्भ दें।

CGFloat height = self.webView.frame.size.height; 
    CGFloat width = self.webView.frame.size.width; 
    NSString *youTubeVideoCode = @"dQw4w9WgXcQ"; 
    NSString *embedHTML = @"<iframe width=\"%f\" height=\"%f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\" style=\"margin:-8px;padding:0;\" allowfullscreen></iframe>"; 
    NSString *html = [NSString stringWithFormat:embedHTML, width, height, youTubeVideoCode]; 
    self.webView.scrollView.bounces = NO; 
    [self.webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://www.youtube.com"]]; 
संबंधित मुद्दे