我試圖用我的應用程序使用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:路徑錯誤:&錯誤];它抱怨文件或目錄不存在,當它實際上它(我也檢查了[QTMovie canInitWithUrl:])。
我不確定這裏發生了什麼事。蘋果的示例代碼能夠多次記錄,但出於某些原因,我不能在沒有首先刪除現有文件的情況下(它首次運行)。
如果需要,我很樂意提供進一步的細節。
編輯:如果我每次使用不同的名稱視頻,一切正常。所以這是每次錄製相同名稱的真正問題。
聽起來像有一些瘋狂的緩存正在進行。你嘗試使用'alloc/initWithURL:error:'而不是方便的方法嗎?或者,如果失敗了,創建一個可編輯的電影,這個電影在這個錄製/回放任務的整個過程中保留下來,並且當你刪除舊文件時,只需將其設置爲'nil',就可以更新其URL。 – danyowdee 2011-06-12 09:08:49
無論如何:你是否提交了一個減少樣本項目的bug? – danyowdee 2011-06-12 09:10:15