У меня проблема с использованием MPMoviePlayerViewController. Я пытаюсь инициализировать фильм на viewDidLoad
, а затем воспроизвести фильм на touchesBegan
. Но сначала фильм начинает играть, а на touchesBegan
он показывает только готовый фильм.MPMoviePlayerViewController играет без запроса
ViewController.h файл
@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
он работает, как ожидалось, но фильм все еще должен загрузить, но я хочу предварительно загрузите его, а затем снова сделайте что-нибудь, когда закончите играть.
Любые подсказки?
С уважением
У Тима есть хорошее предложение ниже. Вы можете проверить (вставив инструкцию NSLog), если по какой-либо причине при вызове приложения возможно вызвать вызовBegan. –
сделал это, фильм все еще играет, но если я прикоснусь к нему, это будет второй раз .... – spankmaster79