2012-04-25 13 views
5

शुभ दिन,यूट्यूब बर्खास्तगी घटना (आईओएस)

मैं अब (मेरे अनुप्रयोग के भीतर एक यूट्यूब वीडियो को दिखाने के लिए टैग का उपयोग कर काम कर रहे विधि है एक UIWebView के उपयोग के माध्यम से, वेबव्यू और फायरिंग के भीतर प्ले बटन खोजने उस पर स्पर्श घटना)।

एक आकर्षण की तरह काम करता है। वीडियो पॉप अप और नाटकों। हालांकि जब वीडियो समाप्त होता है या उपयोगकर्ता द्वारा किए गए बटन पर क्लिक किया जाता है तो मैं एक ईवेंट प्राप्त करना चाहता हूं।

इंटरनेट पर मुझे पता चला है कि एक घटना है: MPAVControllerItemPlaybackDidEndNotification जहां आप सुन सकते हैं। हालांकि यह एक बुलाया नहीं जाता है।

कुछ और शोध के बाद मैंने पाया कि UIWebView के माध्यम से एम्बेडेड यूट्यूब वीडियो के लिए एक और अधिसूचना (UIMoviePlayerControllerDidExitFullscreenNotification) कहा जाता है। दुर्भाग्यवश वह अब और काम नहीं करता है। (found it here)

क्या किसी को पता है कि वीडियो चलाने के बाद मैं कुछ कार्रवाई कैसे कर सकता हूं या इसे खारिज कर दिया गया है?

- (void)playerWillExitFullscreen:(NSNotification *)notification 
{ 
//do something... 
} 

[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(playerWillExitFullscreen:) 
name:@"MPMoviePlayerWillExitFullscreenNotification" object:nil]; 

उत्तर

-1

तुम यहाँ की जरूरत है कुछ इस तरह है। UIMoviePlayerControllerDidExitFullscreenNotification वास्तव में आईओएस 6 पर छोड़ा जाना प्रतीत होता है।

मन कि ... ने ... बनाम ... विल ... अंतर!

उस विषय पर और अधिक के लिए, एक बार फिर उस पोस्टिंग के भीतर मेरे अपडेट किए गए उत्तर की जांच करें जिसे आपने अपने प्रश्न में संदर्भित किया है। इस परिदृश्य में

+0

किया? इससे पहले कोशिश की गई, अधिसूचना यहां गोलीबारी नहीं कर रही है। – fabb

+0

MPMoviePlayerWillExitFullscreenNotification आईओएस 6 पर मेरे लिए काम कर रहा है 6. क्या आप जांच सकते हैं कि यह आपके लिए काम कर रहा है या नहीं? – defactodeity

+0

दुर्भाग्यवश, यह मेरे लिए काम नहीं करता है। हो सकता है कि इसे एक यूट्यूब वीडियो का उपयोग UIWebView के भीतर करना है? – fabb

5

किया बटन पर टैप उपयोगकर्ता एक बार सूचित किया जा रहा है के लिए UIMoviePlayerControllerWillExitFullscreenNotification का उपयोग करें:

धन्यवाद

+2

आईओएस 8 में काम नहीं कर रहा है –

0

आइए नज़र:

enter image description here

आपके विचार में, यदि आप एक बटन होता है। जब इसे क्लिक किया जाता है, तो आप सीधे वीडियो चला सकते हैं। आदेश में ऐसा करने के लिए, आप वेबव्यू आपके विचार का एक मॉडल दृश्य के रूप में खोलें:

[self presentModalViewController:videoWebView animated:NO]; 

अपने वेब दृश्य के लिए, आप को एकीकृत और वीडियो स्वतः चलाने के यूट्यूब एपीआई का उपयोग करना चाहिए। प्रस्तावित कार्य उदाहरण यहां देखें: https://stackoverflow.com/a/15538968

आप देखेंगे कि वीडियो आपके वेबदृश्य दृश्य के एक मॉडल दृश्य में लॉन्च किया गया है। वीडियो को खारिज करते समय पता लगाने का एक तरीका (जब "किया गया" बटन क्लिक किया गया है) अपने वेबव्यू व्यू क्लास पर viewDidAppear का उपयोग करना है। इस विधि में आप वेबव्यू व्यू को भी खारिज कर देंगे लेकिन ... जब यह दृश्य पहले लॉन्च किया जाता है, तो आप इसे खारिज नहीं करना चाहते हैं। इससे बचने के लिए आप एक बुलियन संपत्ति जोड़ सकते हैं।

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    if (_videoLaunched) { 
     [self dismissModalViewControllerAnimated:YES]; 
    } 
} 

viewDidLoad विधि में, नहीं करने के लिए इस गुण सेट और webViewDidFinishLoad विधि (वेबव्यू के प्रतिनिधि विधि) में यह हाँ करने के लिए सेट।

मुझे लगता है कि यह आपके प्रश्न के एक हिस्से का उत्तर देता है।वीडियो परिवर्तन के सुनने के लिए वीडियो के अंत की पहचान के बारे में आपको YT_Player.html फ़ाइल को संशोधित करना होगा।

ytPlayer = new YT.Player('media_area', {height: '100%', width: '100%', videoId: 'SbPFDcspRBA', 
           events: {'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange} 

function onPlayerStateChange(e) { 
     var result = JSON.parse(event.data); 
     if (result.info == 0) { // Video end 
      window.location = "videomessage://end"; 
     } 
    } 
           }); 

तब आप अपने वेब दृश्य दृश्य में घटना को पकड़ने और इस तरह इसे खारिज जाएगा: आप iOS 6 कोशिश

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSURL *url = request.URL; 
    if ([[url scheme] isEqualToString:@"videomessage"]) { 
     [self dismissModalViewControllerAnimated:YES]; 
     return YES; 
    } 
    return YES; 
} 
संबंधित मुद्दे