سؤال

لدي تطبيق iPad يحتوي على 4 أزرار على الجانب الأيسر يتوافق مع 4 مقاطع فيديو مختلفة. عندما ينقر المستخدم على الفيديو الذي يريدون رؤيته ، يظهر على الجانب الأيمن. أرغب في أن يبدو أنه يتم تحميله (كما لو كان يتدفق عبر الإنترنت). أضفت UiActivityIndicator إلى مركز إطار الفيديو الأسود ولديّ خيط يتوقف مؤقتًا لمدة 3 ثوان. ومع ذلك ، فإن اللاعب الذي يحتوي على الفيديو السابق لا يختفي. يتجمد فقط على الإطار الأخير من الفيديو السابق لمدة 3 ثوان (يخفي مؤشر النشاط) ثم يظهر الفيديو الجديد.

أي أفكار حول كيفية جعل اللاعب يخفي مؤقتًا؟ شكرا على اي مساعدة. ها هو رمزتي:

-(IBAction) videoButton1{
   [player stop];
   [player release];

   [self.activityIndicator startAnimating];

   NSString *url = [[NSBundle mainBundle] pathForResource:@"video1" ofType:@"mov"];
   [self setupVideoPlayer:url];
}

-(void) setupVideoPlayer: (NSString *) url{
   player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url)];
   player.view.frame = CGRectMake(487, 205, 478, 320);

   [self.view addSubview:player.view];

   [NSThread sleepForTimeInterval:3.0];
   self.activityIndicator stopAnimating];

   [player play];
}
هل كانت مفيدة؟

المحلول

يمكنك تعيين إطار اللاعب الخاص بك على طريقة عرض يمكنك القيام بها في IB أو برمجيًا بدلاً من القيام بـ CGRECTMAKE في كل مرة.

self.player.view.frame = self.viewformovie.bounds ؛

self.player.view.autoresizingmask = uiviewautoresizationflexiblewidth | uiviewautoresizingflexibleheight ؛

ثم في "VideObutton1" يمكنك تعيين ألفا من العرض إلى 0

ViewFormovie.alpha = 0 ؛

وفي "SetupVideOplayer" ، يمكنك تغيير ألفا إلى 1.

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