2016-11-10 139 views
1

我想在服務器上傳語音錄製。將網址轉換爲NSData

我的文件網址是:

file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3 

我的代碼是:

NSData* data = [NSData dataWithContentsOfURL:audioURL options:NSDataReadingUncached error:&error]; 

但數據是零。

+0

看到這個曾經http://stackoverflow.com/questions/11525942/play-audio-ios-objective- ç –

+0

嘗試使用absoluteURL '的NSData *數據= [NSData的dataWithContentsOfURL:[audioURL absoluteURL]選項:NSDataReadingUncached誤差:&錯誤];' – nynohu

+0

沒有奏效,也零發生。 –

回答

0

使用此代碼從文件夾中獲取數據:

if([[NSFileManager defaultManager] fileExistsAtPath:filepath) 
{ 
    NSData *data = [[NSFileManager defaultManager] contentsAtPath:filepath]; 
} 
else 
{ 
    NSLog(@"File not exits"); 
} 
0

你只需要做:

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"]; 
NSString *path = [imgPath absoluteString]; 
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:path]; 
0

試試這個

NSData* data =[[NSData alloc]init]; 
data = [NSData dataWithContentsOfFile:[NSURL URLWithString:path]]; 
+0

不能再次工作.. –

1

請嘗試以下代碼

NSString *audioURLString = @"file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3"; 
NSString *sendStr = [[audioURLString absoluteString] stringByReplacingOccurrencesOfString:@"file:///private" withString:@""]; 
NSData *data = [[[NSData dataWithContentsOfFile:sendStr]]]; 

好運.....

0

運行後:
文件:///用戶/ xantatech /庫/開發商/ CoreSimulator /設備/ 77F4D768-1F04-4390-B60F-F1FE79388653 /數據/集裝箱/數據/應用/ 「87C457FA-1A9F-4CA9-A651-6A3D411A0B7E」 /Documents/myAudio0.mp3
中的粗體文字 「87C457FA-1A9F-4CA9-A651-6A3D411A0B7E」 可能會改變;
你應該總是使用的方法來獲得在沙箱的路徑:

NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"myAudio0.mp3"];