2011-04-01 9 views
5

हम एक ऐप विकसित कर रहे हैं जिसमें कुछ मानक कक्षों के साथ एक टेबल व्यू है, लेकिन YouTube वीडियो की एक सूची भी है। हम जानते हैं कि यूट्यूब वीडियो डेटा को UIWebView में कैसे एम्बेड करें और जब उपयोगकर्ता इसे छूता है तो इसे चलाएं। लेकिन ऐसा करने के लिए, उपयोगकर्ताओं को UIWebView को स्पर्श करना होगा।उपयोगकर्ता द्वारा UIWebView को छूने वाले उपयोगकर्ता के बिना मैं YouTube वीडियो कैसे शुरू कर सकता हूं?

चूंकि यह एक टेबल व्यू है, इसलिए प्रत्येक सेल बाईं ओर थंबनेल के साथ सामान्य सेल है, कुछ जानकारी और दाईं ओर एक सहायक बटन है। हम उपयोगकर्ताओं को सेल में कहीं भी स्पर्श करना चाहते हैं, न केवल वेबव्यू (didSelectRow) ताकि वीडियो शुरू हो जाए।

हम इसे कैसे प्राप्त कर सकते हैं?

  1. हम didSelectRow पर एक WebView को सक्षम करने के बारे में सोचा गया है, एचटीएमएल डेटा एम्बेड और इसे फुलस्क्रीन दिखाते हैं, लेकिन इस तरह के साथ उपयोगकर्ताओं को वीडियो चलाने के लिए प्ले बटन में एक बार फिर से स्पर्श करने की आवश्यकता होगी, मैं सही हूँ?
  2. इसके बजाय MPMoviePlayerController का उपयोग करना संभव होगा, अनुरोध URL के रूप में वीडियो के FLV पथ के रूप में सेट करना? (कोई एपीआई सुझाया गया है?)
  3. आखिरी वाला वेबव्यू के अंदर स्पर्श को अनुकरण करेगा, इसलिए यह वीडियो शुरू करेगा, भले ही उपयोगकर्ता ने UIWebView को छुआ नहीं है। क्या यह संभव है?
  4. कोई अन्य सुझाव?

उत्तर

9

स्वयं का जवाब दें। मुझे समाधान मिला है। यह कोड वेबव्यू ऑटोप्ले करेगा।

- (UIButton *)findButtonInView:(UIView *)view { 
    UIButton *button = nil; 

    if ([view isMemberOfClass:[UIButton class]]) { 
    return (UIButton *)view; 
    } 

    if (view.subviews && [view.subviews count] > 0) { 
    for (UIView *subview in view.subviews) { 
     button = [self findButtonInView:subview]; 
     if (button) return button; 
    } 
    } 

    return button; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)_webView { 
    UIButton *b = [self findButtonInView:_webView]; 
    [b sendActionsForControlEvents:UIControlEventTouchUpInside]; 
} 

Youtube video autoplay on iPhone's Safari or UIWebView

आशा है कि यह किसी और में मदद करता है।

+0

बस यह कोड डालें और फिर यह काम करेगा ??? – crazyoxygen

+0

यह चाहिए। बस वेबव्यू को प्रतिनिधि करना याद रखें ताकि WebViewDidFinishLoad को कॉल किया जा सके। – Yorxxx

+1

क्या यह समाधान आईओएस 6 में काम करता है? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^