2011-11-24 15 views
5

हैलो मैं उद्देश्य के लिए नया हूँ - सीअधिसूचना प्राप्त जब एक वीडियो शुरू होता है या UIWebView में बंद हो जाता है

मैं UIWebView और MPMoviePlayerController साथ समस्या आ रही है: मेरी UIWebView एचटीएमएल अंदर एक फिल्म है (यह एक स्थानीय एचटीएमएल है फ़ाइल), मैं एचटीएमएल 5 और वीडियो के लिए एक वीडियो टैग का उपयोग कर रहा हूँ।

मैं एक अधिसूचना चाहते हैं जब वीडियो शुरू होता है या बंद हो जाता है UIWebView में ....

मैं MPMoviePlayerPlaybackDidFinishNotification उपयोग करने की कोशिश की है, लेकिन यह आग नहीं करता ...

मैं भी अपने मुख्य UIViewController बनाने की कोशिश की है मेरे अपने विचार को देखें, और -didAddSubview: और -willRemoveSubview: को रोकें। लेकिन बिना किसी sucess के ...

क्या कोई शरीर जानता है कि uiwebview से अधिसूचना कैसे प्राप्त करें ??

उत्तर

19

आप @"MPAVControllerPlaybackStateChangedNotification" देख सकते हैं (ऑब्जेक्ट के लिए nil का उपयोग करें)। यह अधिसूचना दस्तावेज नहीं है इसलिए मुझे नहीं पता कि ऐप स्टोर आपके ऐप को स्वीकार करेगा या नहीं।

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

अधिसूचना कुंजी MPAVControllerNewStateParameter अपने userInfo में है। प्लेबैक शुरू होने से पहले मान 0 लगता है, 1 जब इसे रोका जाता है, 2 जब यह खेल रहा है, और 3 (क्षणिक रूप से) जब आप प्लेबैक स्लाइडर खींच रहे हों।

- (void)playbackStateDidChange:(NSNotification *)note 
{ 
    NSLog(@"note.name=%@ state=%d", note.name, [[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue]); 
} 
+0

भयानक सलाह - मैंने अक्सर लोगों से कहा कि एक वेब व्यू मूवी प्लेयर अधिसूचनाओं के लिए नहीं देखा जा सकता - जी, अनुमान है कि मैं गलत था। – Till

+0

यह वास्तव में नहीं जानता कि यह कौन सा मूवी प्लेयर देख रहा है। उम्मीद है कि आप केवल एक को देखने के लिए है। :) –

+0

वीडियो को रोकने के लिए कैसे खेलना है, बस अधिसूचना से? – lakesh

1

मैं this..Here के बारे में बहुत कुछ खोजा समाधान है कि मैं प्लेबैक अंत अधिसूचना कॉल प्राप्त करने के लिए मिल गया है है। आईओएस 6.0 और पर परीक्षण कोड। @Morten पर सभी धन्यवाद।

viewDidLoad में पर्यवेक्षक

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(playbackDidEnd:) 
name:@"MPAVControllerItemPlaybackDidEndNotification"//@"MPAVControllerPlaybackStateChangedNotification" 
object:nil]; 

जोड़ने तो बस के रूप में

नीचे
- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    //http://stackoverflow.com/a/12504918/860488 
    [videoView stringByEvaluatingJavaScriptFromString:@"\ 
            var intervalId = setInterval(function() { \ 
             var vph5 = document.getElementById(\"video-player\");\ 
             if (vph5) {\ 
              vph5.playVideo();\ 
              clearInterval(intervalId);\ 
             } \ 
            }, 100);"]; 
} 

- (void)playbackDidEnd:(NSNotification *)note 
{ 
//do your stuff here 
    [videoView removeFromSuperview]; 
    videoView.delegate = nil; 
    videoView = nil; 
} 

आप ऊपर चुनी में playbackDid कॉल समाप्त करें मिलेगा जावास्क्रिप्ट कोड webViewDidFinishLoad प्रतिनिधि निम्न जोड़ सकते हैं और जो कुछ भी आपकी आवश्यकता है कर सकते हैं। हैप्पी कोडिंग !!

+0

वॉल्यूम सीक बार आईओएस 7 में प्रदर्शित नहीं हो रहा है ... !! कोई उपाय??? –

+0

कोई तेज़ संस्करण नहीं है? –

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