我正在制作一款应用程序,要求我将录音保存在数据库中并稍后检索。然而,虽然我有点意识到如何使用sqlite,但我不确定在保存录音时我是否使用了正确的方法,因为我很难让它工作。下面列出了我用于保存录音的当前代码,我将非常感谢我收到的有关我的代码的任何反馈。
self.renameString =[NSString stringWithFormat:@"%@/%@.caf",DOCUMENTS_FOLDER,self.soundName.text];
NSLog(@"%@",self.renameString);
self.soundFileURL2 = [NSURL fileURLWithPath:self.renameString];
NSLog(@"%@",self.soundFileURL2);
NSFileManager *fm = [NSFileManager defaultManager];
NSError *renameError;
[fm moveItemAtURL:self.soundFileURL toURL:self.soundFileURL2 error:&renameError];
[self checkAndCreateDatabase];
self.soundName.text = @"";
BOOL checkQuery;
NSData *blob;
blob = self.voiceData;
sqlite3_stmt *statement;
const char *insert = [self.renameString UTF8String];
if(sqlite3_prepare_v2(soundDB, insert, -1, &statement, NULL)!= SQLITE_OK) {
checkQuery=NO;
}
else {
sqlite3_bind_blob(statement, 1, [blob bytes], [blob length], NULL);
if(SQLITE_DONE != sqlite3_step(statement)) {
checkQuery=NO;
}
else {
// NSLog(@"Query Working nicely");
checkQuery=YES;
sqlite3_reset(statement);
}
}
//}
sqlite3_finalize(statement);
sqlite3_close(soundDB);
我也知道为了检索保存的文件,你必须声明一个新的NSData变量并将读数分配给该变量。之后,您必须提取NSData并将其放入另一个变量本身。问题是,虽然我知道如何提取NSString和UIImage数据,但我不确定提取AVAudioRecorder数据的规则。有人可以帮我这个吗?感谢。