для простого примера, у меня есть два uiviews, и в первом представлении есть только одна кнопка для воспроизведения видео во втором представлении. идея заключается в том, когда пользователь нажимает кнопку воспроизведения, второй вид будет отображаться и воспроизводить видео в заданном положении. вот то, что я сделал для него:видео анимированные странно при использовании анимации uiview
в заголовочном файле:
MPMoviePlayerController *player;
NSURL *videoURL;
IBOutlet UIView *mainView;
IBOutlet UIView *secondView;
}
-(IBAction)view:(id)sender;
-(IBAction)back:(id)sender;
@property (nonatomic, retain) MPMoviePlayerController *player;
-(void)playVideo;
@end
и файл реализации:
-(void)playVideo {
videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test2.mov" ofType:nil]];
player = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[player prepareToPlay];
[secondView addSubview:player.view];
player.view.frame = CGRectMake(92, 137, 804, 473);
[player.backgroundView addSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test2.png"]]];
player.scalingMode = MPMovieScalingModeFill;
player.view.backgroundColor = [UIColor clearColor];
player.controlStyle = MPMovieControlStyleNone;
[player play];
}
-(IBAction)view:(id)sender {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.2];
[UIView setAnimationDelay:0.1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
mainView.frame = CGRectMake(-1024, 0, 1024, 748);
secondView.frame = CGRectMake(0, 0, 1024, 748);
[UIView commitAnimations];
[self performSelector:@selector(playVideo) withObject:nil afterDelay:3.0];
анимация работает просто отлично и воспроизведения видео, как указано в коде , но проблема заключается в том, что видео не воспроизводится с текущего установленного положения «player.view.frame = CGRectMake (92, 137, 804, 473)»; вместо этого он начинает анимацию из своих точек x, y и down, заполняя весь кадр (804,473). поэтому, как игровой слой, анимированный, прежде чем он начнет играть. Я просто хочу, чтобы игрок начал играть со своей позиции фиксации. любое решение по этому поводу?
вот что я уже сделал:
#import <QuartzCore/QuartzCore.h>
.m файл:
[secondView.layer removeAllAnimations];
и я уже читал почти все решения здесь, но ни один из тех, кто ответ «на самом деле» не работает, чтобы остановить UIView анимации поэтому его не повлияло на игрока. спасибо, и я очень ценю помощь от вас, ребята.