我正在录制声音并将其存储在沙箱中,并在下一视图中将其声音名称和这首歌曲存储在sqlite中。我已经使用了Blob,但是应用变得太慢了,所以我想将特定歌曲的沙箱路径存储在sqlite数据库中。

记录的保存目的

- (void)saveRecordFile
{
    NSLog(@"play Record");
    if (audioPlayerRecord)
    {
        if (audioPlayerRecord.isPlaying) [audioPlayerRecord stop];
        else [audioPlayerRecord play];

        return;
    }

初始化播放音频 session
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,    NSUserDomainMask, YES);
    NSString *recDir = [paths objectAtIndex:0];
    NSString *pathToSave = [recDir stringByAppendingPathComponent:[self dateString]];
    songUrl = [NSURL fileURLWithPath:pathToSave];

在这里,songUrl包含所有如何存储在数据库中的歌曲。

最佳答案

不要将文件路径转换为URL。保留它为路径。然后只需将路径字符串保存到数据库中即可。

如果将blob设为链接到数据库中其他实体的单独实体,则应该能够将BLOB保存到数据库中而不会降低其速度。不要将BLOB设为记录字段。它使记录太“沉重”。

10-06 13:57