我正在尝试使用下面的代码来播放基本的.mov视频文件,但是当按下我指定了按钮的按钮时,唯一显示的是黑框,但没有播放视频。任何帮助表示赞赏。感谢。
@implementation SRViewController
-(IBAction)playMovie{
NSString *url = [[NSBundle mainBundle]
pathForResource:@"OntheTitle" ofType:@"mov"];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc]
initWithContentURL: [NSURL fileURLWithPath:url]];
// Play Partial Screen
player.view.frame = CGRectMake(10, 10, 720, 480);
[self.view addSubview:player.view];
// Play Movie
[player play];
}
@end
答案 0 :(得分:13)
假设前提条件:您的项目正在使用ARC 。
您的MPMoviePlayerController
实例仅限本地实例,ARC无法告知您需要保留该实例。由于控制器未被其视图保留,因此结果是您的MPMoviePlayerController
实例将在执行playMovie
方法执行后直接释放。
要解决该问题,只需将播放器实例的属性添加到SRViewController
类,然后将该实例分配给该属性。
部首:
@instance SRViewController
[...]
@property (nonatomic,strong) MPMoviePlayerController *player;
[...]
@end
实现:
@implementation SRViewController
[...]
-(IBAction)playMovie
{
NSString *url = [[NSBundle mainBundle]
pathForResource:@"OntheTitle" ofType:@"mov"];
self.player = [[MPMoviePlayerController alloc]
initWithContentURL: [NSURL fileURLWithPath:url]];
// Play Partial Screen
self.player.view.frame = CGRectMake(10, 10, 720, 480);
[self.view addSubview:self.player.view];
// Play Movie
[self.player play];
}
[...]
@end