目标c-QTKit找不到文件或目录



我正在尝试使用qtkit用我的应用程序录制和播放电影。我在一个视图中录制视频,然后将其显示到另一个视图。以下是我的操作方法

- (void)startRecording
{
    NSString *applicationSupportDirectory = [[NSFileManager defaultManager] applicationSupportDirectory];
    NSString *path = [applicationSupportDirectory stringByAppendingPathComponent:kVideoOutputName];
    NSURL *url = [NSURL fileURLWithPath:path];
    // Delete the previous file
    [[NSFileManager defaultManager] removeItemAtURL:url error:nil];
    mCaptureMovieFileOutput.delegate = self;
    [mCaptureMovieFileOutput recordToOutputFileURL:url];
}
- (void)stopRecording
{
    [mCaptureMovieFileOutput recordToOutputFileURL:nil];
}
- (void)captureOutput:(QTCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL forConnections:(NSArray *)connections dueToError:(NSError *)error
{
    // [[NSWorkspace sharedWorkspace] openURL:outputFileURL];
    // removes the current view
    [self cleanView];
    MyViewController *controller = [[SharingViewController alloc] init];
    controllerpath.path = outputFileURL;
    [self.view addSubview:[controller view]];
    [self stopCamera];
}

现在,在我的视图控制器中,我将电影分配给我的电影播放器。

- (void)awakeFromNib
{
    NSError *error;
    moviePlayer.movie = [QTMovie movieWithURL:path error:&error];
    NSLog(@"%@", [error localizedDescription]);
}

现在,这段代码第一次工作,但我需要注册并显示多次。

这里已经有一个问题了。如果我想多次录制视频,我必须删除第一个,否则第一次之后它就不会录制任何内容(它抱怨已经存在一个文件)。

问题是,在第一次之后,它也根本不显示视频。当我执行[QTMovie movieWithURL:path error:&error]时;它抱怨文件或目录不存在,而实际上它确实存在(我还查看了[QTMovie canInitWithUrl:])。

我不知道这里发生了什么。苹果的示例代码可以记录多次,但由于某些原因,我不能不首先删除现有文件(不过它是第一次工作)。

如果需要,我很乐意提供更多细节。

编辑:如果我每次为视频使用不同的名称,一切都会正常。所以这真的是一个关于每次都用同一个名字录音的问题。

我最终为每个文件使用了不同的文件名。

我遇到了同样的问题,我发现在重用相同的文件名之前,将电影视图设置为nil解决了这个问题。

我在创建QTMovie时遇到了同样的奇怪问题。我刚把文件加载到这样的NSData对象中,它就工作了:

[self setMovieData:[NSData dataWithContentsOfURL:[self movieURL]]];
[self setMovie:[QTMovie movieWithData:[self movieData] error:&error]];

相关内容

  • 没有找到相关文章