Ios AVPlayer赢了';不要播放电影文件

Ios AVPlayer赢了';不要播放电影文件,ios,avfoundation,avplayer,avcapturemoviefileoutput,Ios,Avfoundation,Avplayer,Avcapturemoviefileoutput,我使用AVCaptureMovieFileOutput捕获视频文件 - (void)takeVideoAction:(id)sender { NSString *outputPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"output.mp4"]; NSFileManager *manager = [[NSFileManager alloc] init]; if ([manager file

我使用
AVCaptureMovieFileOutput
捕获视频文件

- (void)takeVideoAction:(id)sender {
    NSString *outputPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"output.mp4"];

    NSFileManager *manager = [[NSFileManager alloc] init];
    if ([manager fileExistsAtPath:outputPath]){
        [manager removeItemAtPath:outputPath error:nil];
    }
   [movieFileOutput startRecordingToOutputFileURL:[NSURL fileURLWithPath:outputPath] recordingDelegate:self];
}   
然后尝试用AVPlayer播放,但什么也没发生。从我所读到的,我认为我需要等待文件完成加载在下面的方法,而不是试图立即播放它

 - (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error{

    AVAsset *asset = [AVAsset assetWithURL:outputFileURL];
    self.playerItem = [[AVPlayerItem alloc]initWithAsset:asset];

    self.player = [[AVPlayer alloc] initWithPlayerItem:self.playerItem];
    self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
    [[[self view] layer] insertSublayer:self.playerLayer atIndex:(int)self.view.layer.sublayers.count];
    [self.playerLayer setFrame:self.view.frame];
    //self.playerLayer.backgroundColor = [UIColor yellowColor].CGColor;
    [self.player play];

}

当我删除该行时:

NSFileManager *manager = [[NSFileManager alloc] init];
if ([manager fileExistsAtPath:outputPath]){
    [manager removeItemAtPath:outputPath error:nil];
}

它起作用了

嗯。那么,当你在播放之前等待文件以下面的方法完成加载时,它是否有效?@rocky我收到了,谢谢,并在下面回答。但是,我知道你应该检查并删除是否存在现有文件。有什么建议吗