以下這段代碼在執行時,創建的playerController總是為nil,查找原因:原來是通過[NSBundle mainBundle] 獲取的路徑為nil,則創建出來的playerController對象時也為nil。
#pragma mark - Lazy Loading
- (IJKFFMoviePlayerController *)playerController {
if (_playerController == nil) {
// 隨機播放一個視頻
NSString *movieName = arc4random_uniform(10) % 2 ? @"login_video" : @"loginmovie";
NSString *path = [[NSBundle mainBundle] pathForResource:movieName ofType:@"mp4"];
IJKFFMoviePlayerController *playerController = [[IJKFFMoviePlayerController alloc]
initWithContentURLString:path withOptions:[IJKFFOptions optionsByDefault]];
[self.view addSubview:playerController.view];
[playerController.view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self.view);
}];
// 填充模式
playerController.scalingMode = IJKMPMovieScalingModeAspectFill;
// 自動播放
playerController.shouldAutoplay = NO;
// 準備播放
[playerController prepareToPlay];
_playerController = playerController;
}
return _playerController;
}
解決方法: 在Targets -> Build Phases -> Copy Bundle Resources里面導入資源文件,運行項目
Snip20161116_17.png