У меня проблема с использованием MPMoviePlayerViewController. Я пытаюсь инициализировать фильм на viewDidLoad
, а затем воспроизвести фильм на touchesBegan
. Но фильм сначала начинает воспроизводиться, и на touchesBegan
он показывает только готовый фильм.
ViewController.h file
@interface ViewController : UIViewController{
MPMoviePlayerController *moviePlayer;
MPMoviePlayerViewController *mpviewController;
MPMovieControlStyle controlStyle;}
- (IBAction)touchesBegan:(id)sender;
@property (nonatomic) MPMovieControlStyle controlStyle;
@end
ViewController.m
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.view addSubview:mpviewController.view];
[moviePlayer play]; }
- (void)viewDidLoad
{
NSString *movpath = [[NSBundle mainBundle]
pathForResource:@"my_moviefile"
ofType:@"m4v"];
mpviewController =
[[MPMoviePlayerViewController alloc]
initWithContentURL:[NSURL fileURLWithPath:movpath]];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:mpviewController];
MPMoviePlayerController *mp = [mpviewController moviePlayer];
// [mp setMovieControlMode:MPMovieControlModeHidden];
// [mp.view setFrame:CGRectMake(0, 0, 250, 263)];
mp.controlStyle = MPMovieControlStyleNone;
[mp prepareToPlay];
[super viewDidLoad];
}
Если я вставлю весь код в touchesBegan
, он будет работать, как и ожидалось, но фильм все равно должен загрузиться, но я хочу предварительно загрузить его, а затем снова сделать что-нибудь, когда он закончит играть.
Есть какие-нибудь подсказки?
Привет