2012-07-19 20 views
6

मैं सिर्फ यह जानना चाहता हूं कि प्लेबैक नियंत्रण दिखाई देने या छुपा होने पर अधिसूचना प्राप्त करना संभव है या नहीं?अधिसूचना जब मूवी प्लेयर नियंत्रण दिखाई/छुपा हो जाता है?

उदाहरण के लिए, मैं शैली के साथ एक वीडियो प्रस्तुत करना चाहते हैं:

self.moviePlayerController.controlStyle = MPMovieControlStyleEmbedded; 

वीडियो के शुरू करते हैं, तो प्लेबैक नियंत्रण दिखाई हो जाता है और स्वचालित रूप से गायब हो जाता है। यदि उपयोगकर्ता वीडियो पर बस टैब है, तो नियंत्रण दिखाई देते हैं।

मैं एक अधिसूचना की जरूरत है तो मैं (मेरे विचार समायोजित कर सकते हैं MPMoviePlayerController दृश्य के तहत कुछ अतिरिक्त बटन का स्थान।? कि संभव है क्योंकि दुर्भाग्य से मैं दस्तावेज में कुछ नहीं मिला।

उत्तर

5

मुझे डर है कि वहाँ कोई दस्तावेज हैं कि कर रहा हूँ उन घटनाओं के लिए सूचनाएं

आप भाग्यशाली हो सकता है और निम्नलिखित जवाब में के रूप में सभी तैनात सूचनाएं सूँघने से कुछ मिल सकता है:।

Trapping and tracing all notifications

How to receive NSNotifications from UIWebView embedded YouTube video playback


वहाँ हालांकि एक तरह से बस MPMoviePlayerControler के उन लोगों के साथ अपने नियंत्रण से जोड़ने के लिए है। इस तरह निश्चित रूप से अनियंत्रित है और आईट्यून्स पर अपना ऐप बेचने की कोशिश करते समय इसे अस्वीकार करने का एक मजबूत जोखिम होता है।

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

/** 
* This quirky hack tried to locate the interface view within the supposingly opaque MPMoviePlayerController 
* view hierachy. 
* @note This has a fat chance of breaking and/or getting rejected by Apple 
* 
* @return interface view reference or nil if none was found 
*/ 
- (UIView *)interfaceViewWithPlayer:(MPMoviePlayerController *)player 
{ 
    for (UIView *views in [player.view subviews]) 
    { 
     for (UIView *subViews in [views subviews]) 
     { 
      for (UIView *controlView in [subViews subviews]) 
      { 
       if ([controlView isKindOfClass:NSClassFromString(@"MPInlineVideoOverlay")]) 
       { 
        return controlView; 
       } 
      } 
     } 
    } 
    return nil; 
} 

एक उचित देखने के लिए, तुम सिर्फ अपने स्वयं के अतिरिक्त इंटरफ़ेस करने के लिए इसे UIView addSubview: का उपयोग कर एक बार जब आप किया है कि, अपने नियंत्रण खिलाड़ी के इंटरफेस, दिखाया का हिस्सा होगा की करने पर जोड़ सकते हैं और सही एक साथ छिपा हुआ रिटर्न तो इसके साथ (सभी एनिमेशन आदि का भी पालन करना)।

+1

सिडेनोट बताते हुए कि अस्वीकृति जोखिम का उल्लेख किया गया है: मैंने इस सटीक हैक को एक प्रमुख ऐप रिलीज में इस्तेमाल किया था और यह ज्ञात नहीं हुआ .... – Till

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