2012-04-14 80 views
1

這是我第一個真正的項目。我有一個應用程序,可以使用AVFoundation捕捉視頻的幾秒鐘,將其輸出到文檔目錄中的文件,並讓用戶在使用HTTP和我的網站上的PHP腳本上傳視頻之前預覽視頻。轉換iPhone IOS視頻文件上傳器使用存儲在文檔目錄中的文件

所有的視頻捕捉和預覽工作完美,但我堅持上傳視頻文件。

我從這個simpleSDK視頻中瞭解了很多,它展示瞭如何使用存儲在應用程序主包中的視頻文件實現所需的效果。

從建立可視數據準備最初上傳教程中的代碼是這樣的:

NSData *videoData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Movie" ofType:@"mov"]]; 
NSString *urlString = @"http://www.iphonedevnation.com/video-tutorial/upload.php"; 

,我需要上傳的視頻文件的文件名始終是唯一的,並使用CFUUIDCreateString產生。我將此字符串連接到文檔目錄的路徑,將「.mov」添加到文檔目錄的末尾,並將其保存到文本文件中以供稍後檢索。

這一切都可以正常工作,因爲我可以從文件中檢索文件名並使用它在應用程序中的其他位置預覽影片剪輯。

我的路徑是在NSString中,我試圖轉換爲NSURL並刪除文件後綴以使其與NSData * videoData .........行一起工作,但它不能編譯,我得到一個「沒有已知類選擇器的方法dataWithContentsOfFile:ofType」。錯誤,我的目標是iOS 5,並使用Xcode 4.3與ARC和Storyboards。

我一直在這裏5個小時的最佳部分,所以希望有人可以幫助我的代碼,其中包括從其他地方的技巧轉換一個的NSString NSURL如下:

NSString *content = [[NSString alloc] initWithContentsOfFile:lastSavedTalentFilenamePath 
       usedEncoding:nil 
       error:nil]; 

NSLog(@"content=%@",content); 

//Need to now remove the '.mov' file type identifier 
NSString *shortContent= [content substringToIndex:[content length]-4]; 
NSLog(@"***************shortContent***************%@", shortContent); 

NSURL *convertedContent = [NSURL fileURLWithPath:shortContent]; 
NSLog(@"***************convertedContent***********%@",convertedContent); 

NSData *videoData = [NSData dataWithContentsOfFile:convertedContent ofType:@"mov"];]; 

回答

0

沒有名爲dataWithContentsOfFile NSData的方法:ofType:

可用的方法是:

+ dataWithContentsOfFile: 
+ dataWithContentsOfFile:options:error: 

兩者都將文件位置作爲NSString,因此不需要轉換爲NSURL

+0

'ofType'從原始代碼中遺留下來。你指出我正確的方向,但我現在正在工作。我剛剛將代碼部分更改爲以下內容: NSError * error = nil; NSData * videoData = [NSData dataWithContentsOfFile:content options:NSMappedRead error:&error]; – Headstock67 2012-04-14 15:19:52