2009-07-15 12 views
10

MPMoviePlayerController का उपयोग करते समय, प्ले बटन "अगला" और "पिछला" बटन से घिरा हुआ है।आईफोन MPMoviePlayerController पर अगला/पिछला बटन

क्लिक किए जाने पर मुझे सूचनाएं कैसे प्राप्त होंगी? सामग्री की सूची (सरणी) के साथ MPMoviePlayerController को खिलाने का कोई तरीका है?

+0

मैं एक रास्ता मिल गया, मेरे सवाल-जवाब देखें। http://stackoverflow.com/questions/3593683/how-can-i-now-users-click-fast-forward-and-fast-rewind-buttons-on-the-playback-c/3598383#3598383 – alones

उत्तर

6

यदि आप बटन अधिसूचनाएं चाहते हैं तो नाथन खिलाड़ी के लिए अपना यूआई लागू करने की आवश्यकता के बारे में सही है। हालांकि आप प्लेयर से प्लेबैक स्थिति के बारे में अधिसूचनाएं प्राप्त कर सकते हैं।

AddMusic उदाहरण के लिए जहां आत्म नियंत्रक या मॉडल MPMusicPlayerController के कहने युक्त से

:

- (void) registerForMediaPlayerNotifications { 

    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 

    [notificationCenter addObserver: self 
          selector: @selector (handle_NowPlayingItemChanged:) 
           name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification 
          object: musicPlayer]; 

    [notificationCenter addObserver: self 
          selector: @selector (handle_PlaybackStateChanged:) 
           name: MPMusicPlayerControllerPlaybackStateDidChangeNotification 
          object: musicPlayer]; 

    /* 
    // This sample doesn't use libray change notifications; this code is here to show how 
    //  it's done if you need it. 
    [notificationCenter addObserver: self 
    selector: @selector (handle_iPodLibraryChanged:) 
    name: MPMediaLibraryDidChangeNotification 
    object: musicPlayer]; 

    [[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications]; 
    */ 

    [musicPlayer beginGeneratingPlaybackNotifications]; 
}
0

मुझे नहीं लगता कि आपके पास MPMoviePlayerController पर अधिक नियंत्रण है। यह एक मानक घटक है जो मूल रूप से एक फिल्म बजाना शुरू कर सकता है और कुछ और नहीं कर सकता है।

+0

मुझे लगता है तुम सही हो। और फिर भी, ये नियंत्रण वैसे भी क्यों हैं? YouTube एप्लिकेशन पर - वे अगले/पिछली वीडियो पर जाते हैं। –

+0

आईफोन पर वे वर्तमान मूवी की शुरुआत या अंत में जाते हैं। वे अगले/पिछड़े बटन नहीं हैं। –

+0

यह गलत है। जब आप MPMoviePlayerController को कार्यान्वित करते हैं - वे केवल उसी तरह से "स्टॉप" करने वाले खिलाड़ी से बाहर निकलेंगे। –

4

जब उपयोगकर्ता अगले/पिछले बटन दबाता है तो आपको कोई सूचनाएं उत्पन्न नहीं होती हैं (आपको इसके बारे में एक बग फाइल करना चाहिए), इसलिए बिना किसी अनुमोदित दृश्य-क्रॉलिंग के इसे हल करने का एकमात्र तरीका अपने वीडियो ओवरले व्यू को लागू करना है:

MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc] 
    initWithContentURL:someUrl]; 
moviePlayer.movieControlMode = MPMovieControlModeHidden; 
[moviePlayer play]; 

NSArray* windows = [[UIApplication sharedApplication] windows]; 
if ([windows count] > 1) { 
    UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 
    [moviePlayerWindow addSubview:yourCustomOverlayView]; 
} 

आदर्श नहीं है, लेकिन मानक नियंत्रण फिर से कार्यान्वित करने के लिए काफी आसान हैं।

+0

यह कोड मौजूदा ओवरले परत को हटा नहीं रहा है। क्या आप उन पर एक स्पष्ट बटन जोड़ने का मतलब था? –

+0

@ yn2: मैंने अपना जवाब अपडेट कर दिया है ताकि डिफ़ॉल्ट ओवरले यूआई छिपा हुआ हो। –

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