我正在开发一个应用程序,该应用程序需要我将录音保存在数据库中并稍后检索它们。但是,虽然我对如何使用 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 数据的规则。有人可以帮我吗?谢谢。