Если вы создаете это видео в каком-либо методе с этим кодом и вызываете stop
в другом методе, появляется ошибка, поскольку theMovie
существует только в предыдущем методе. Вам необходимо настроить ivar
или @property
.
Проверьте этот вопрос .
EDIT:
Пример кода (не тестировался):
@interface Foo : UIViewController {
MPMoviePlayerController *_theMovie;
}
@property (nonatomic, retain) MPMoviePlayerController *theMovie;
- (void) creationMethod;
- (void) playMethod;
- (void) stopMethod;
@end
@implementation Foo
@synthesize theMovie = _theMovie;
- (void) creationMethod {
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
NSURL *movieURL = [NSURL fileURLWithPath:moviePath]; // retain not necessary
self.theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
self.theMovie.movieControlMode = MPMovieControlModeHidden;
}
- (void) playMethod {
[self.theMovie play];
}
- (void) stopMethod {
[self.theMovie stop];
}
- (void) dealloc {
[_theMovie release];
}
@end
Вы бы назвали creationMethod
где-нибудь, чтобы создать свой проигрыватель фильмов. Это всего лишь пример того, как игрок может быть помещен в свойство, чтобы вы могли использовать его во многих методах, но это не обязательно лучший метод. Вы можете / должны взглянуть на документацию iPhone по объявленным свойствам .
Должен заметить, что я не использовал класс MPMoviePlayerController
, поэтому точный код может отличаться.