1

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

4

0 回答 0