إخفاء mpmovieplayerController أثناء تحميل الفيديو الجديد
-
30-09-2019 - |
سؤال
لدي تطبيق 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.