编辑:想出来!我正在保存URL的absoluteString,当我尝试初始化音频播放器时,我使用了[NSURL fileURLWithPath:name]; 什么时候它应该是[NSURL urlWithString:name].通过创建另一个fileURLWithPath,它正在改变路径并且不起作用.我会留下一些示例代码我猜!
好的,所以我在我的应用程序中有一个用户录制的音频片段.我希望用户能够保存这些录音,所以我想我应该将录音的网址字符串保存到核心数据中,获取网址,并使用该网址加载AVAudioPlayer.但它不起作用.
它给了我:
Error in audioPlayer: The operation could not be completed.
Run Code Online (Sandbox Code Playgroud)
这是URL的NSString:
file://localhost/file:/localhost/var/mobile/Applications/E09081DE-434F-46CA-A598-
A2470973C0F1/Documents/Rang%2520De%2520sound.caf
Run Code Online (Sandbox Code Playgroud)
我有一种感觉它与它保存在localhost中的事实有关,而我在尝试初始化音频播放器时实际上无法访问该文件.但我不确定.我知道可以立即访问URL,因为在我录制后我可以使用该URL播放录制内容.
我如何保存录音:
- (IBAction)saveRecording
{
rapAppDelegate *appDelegate =
[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context =
[appDelegate managedObjectContext];
NSManagedObject *newSong;
newSong = [NSEntityDescription
insertNewObjectForEntityForName:@"URLRecordings"
inManagedObjectContext:context];
NSError *error;
NSURL *urlOfRecording = audioRecorder.url;
NSString *urla = [urlOfRecording absoluteString];
NSLog(@"in saveRecording, the url is: %@",urla);
[newSong setValue:urla forKey:@"urlOfSong"];
[context save:&error];
status.text = @"Song Saved!";
}
Run Code Online (Sandbox Code Playgroud)
当我获取它时,URL会发生变化!我不明白为什么!看:
2012-08-03 16:31:17.434 Rap To Beats[5054:707] in saveRecording, the url is: file://localhost/var/mobile/Applications/E09081DE-434F-46CA-A598-A2470973C0F1/Documents/Le%20Gayi%20sound.caf …Run Code Online (Sandbox Code Playgroud)