私のコードは次のとおりです。
-(void)playMoviesForItems:(NSArray *)shopItems{
_moviePlayer = [self.storyboard instantiateViewControllerWithIdentifier:@"videoPlayerController"];
[_moviePlayer playMoviesForItems:shopItems];
[self presentViewController:_moviePlayer animated:NO completion:^{
[self.scrollView scrollRectToVisible:CGRectZero animated:YES];
}];
}
presentViewController を含む行で、私は取得しています
EXC_BAD_ACCESS (code=1, address=.....)
なぜこれを取得しているのかわかりません。どこが間違っていますか?どうすればそれをデバッグできますか?
更新: Movie Player は次のように宣言されます。
@property(nonatomic,retain) VideoPlayerViewController* moviePlayer;
VideoPlayerController のコードは次のとおりです。
-(VideoPlayerViewController*)playMoviesForItems:(NSArray*)items{
playerItems = [[NSMutableArray alloc] init];
for (ShopItem* item in items) {
NSURL *url = [NSURL fileURLWithPath:item.localUrl];
AVPlayerItem *videoItem = [AVPlayerItem playerItemWithURL:url];
[playerItems addObject:videoItem];
}
self.mPlayer = [[AVQueuePlayer alloc] init];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:mPlayer];
self.playerLayer.bounds = self.view.bounds;
self.view.backgroundColor = [UIColor blackColor];
[mPlaybackView setPlayer:self.mPlayer];
currentIndex = 0;
[self initScrubberTimer];
[self playAtIndex:currentIndex];
mScrubber.maximumValue = CMTimeGetSeconds(self.mPlayer.currentItem.duration);
mScrubber.value = 0.0;
[self syncScrubber];
[self showOverlays];
return self;
}
明確に機能する場合もあります。でも時々壊れます。