2013-10-24 117 views
0

enter image description here我有名爲vvideo.mp4的XCode中的文件。我試圖將其轉換爲NSData,如下所示如何將mp4轉換爲NSData?

NSData *data = [NSData dataWithContentsOfFile:@"vvideo.mp4" options:nil error:nil]; 

但是當我記錄數據時,它將返回空值。

什麼是正確的方式來轉換任何視頻NSData?

文件被添加並在Xcode中正確複製,你可以在這裏看到。

EDITED問題....

+0

這是正確的方法。您的文件不能像這樣命名,或者您沒有將其包含在您的項目中。我的意思是,這將創建一個帶有文件內容的NSData,並將其加載到內存中。所以這也是*正確的方法,通過在RAM中加載整部電影來使您的設備癱瘓。 – Cyrille

+0

編輯的問題,檢查它 – Duaan

+0

它的幾秒鐘,只有10秒視頻先生.... – Duaan

回答

7

dataWithContentsOfFile:options:error:需要一個文件路徑,而不是文件名。如果視頻文件是在應用程序中捆綁你應該做的,

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"vvideo" ofType:@"mp4"]; 

NSError *error = nil; 
NSData *data = [NSData dataWithContentsOfFile:filePath options:nil error:&error]; 
if(data == nil && error!=nil) { 
    //Print error description 
} 

,而不是傳遞error參數作爲nil傳遞值,這將是理解錯誤條件非常有用,如果有發生。

希望有幫助!

+0

2013-10-24 17:09:56.793 GascoLiveStream [17380:c07] ***由於未捕獲的異常終止應用程序'NSInvalidArgumentException ',原因:'*** - [NSConcreteData initWithContentsOfFile:options:error:]:nil file argument' – Duaan

+0

options is not taking nil ... – Duaan

+1

@Duaan打印'filePath'並檢查它是否正確,傳遞'error'參數並檢查錯誤是什麼。 – Amar