سؤال

كما تعلمون ، عندما ألعب الفيلم مع مبموفيبلايركونترولر ، يجب أن تظهر موفيبلاير أكتيفيتيندكاتورفيو في وسط موفيبلاير ' فيو.الآن ، لقد وضعت أكتيفيتيندكاتورفيو مخصصة في برنامجي ، أريد فقط لإخفاء أو إزالة أكتيفيتيندكاتورفيو من مبموفيبلايكونترولر ، هل يمكنني أن أفعل ذلك ?

هل كانت مفيدة؟

المحلول

نعم نستطيع!

أعتقد أن ما تريد القيام به هو إظهار معرف النشاط أثناء تحميل الفيلم الخاص بك, ليس أثناء تشغيله?أنا فقط أفترض ذلك واستمر...

في سك 3.2 وما فوق ، و مبموفيبلايركونترولر كله (و مبموفيبلايرفيوكونترولر) هي أفضل بكثير من الإصدارات السابقة.إذا كنت لا تزال تستخدم مبموفيبلايركونترولر قد تفكر في التحول إلى مبموفيبلايرفيوكونترولر (الذي هو في الأساس فئة فرعية إيفيو التي تغلف كائن مبموفيبلايركونترولر).

على أي حال ، لإظهار وإخفاء عرض أوياكتيفيتينديكاتور الخاص بك ، أود أن أوصي لك لعقف على الإخطارات التي يتم إرسالها من مبموفيبلايركونترولر الخاص بك عند تحميل - أو بلايستاتوس التغيير.

وهناك عدد قليل من هذه هي:

MPMoviePlayerPlaybackStateDidChangeNotification
MPMoviePlayerLoadStateDidChangeNotification 

لذلك أنت يلتقي لتلك الأحداث تفعل هذا:

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(loadStateChanged:) 
                                                 name: MPMoviePlayerLoadStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];

وهذا

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(playBackStateChanged:) 
                                                 name: MPMoviePlayerPlaybackStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];

وضمن معالجات الخاص بك (playBackStateChanged و loadStateChanged)

يمكنك أن تفعل شيئا من هذا القبيل:

-(void)playBackStateChanged:(id)sender
{
    MPMoviePlaybackState playbackState = [moviePlayerViewController.moviePlayer playbackState];

    switch (playbackState) {

        case MPMoviePlaybackStateStopped :


            break;

        case MPMoviePlaybackStatePlaying :
            [yourActivityIndicatorView stopAnimating];
            break;

        case MPMoviePlaybackStateInterrupted :
            [yourActivityIndicatorView startAnimating];
            break;
    }
}

تأكد من تعيين خاصية" هيديسوينستوبد " (أو ما شابه) من إنديكاتورفيو الخاص بك إلى نعم (إذا كنت تفعل ذلك ، لم يكن لديك لرعاية إخفاء وإلغاء إخفاء السيطرة.

والباقي هو بسيط ، فقط إضافة أكتيفيتيندكاتورفيو أونتوب من عرض مبموفيفيوكونترولر الخاص بك.

آمل أن أتمكن من المساعدة
في صحتك
سام

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top