iOS记录音频并将其存储在播放列表中

| 我正在寻找通过录音按钮从iPhone麦克风录制音频的方法。我已经下载并了解Apple提供的示例项目(SpeakHere)。 但是,下一步,我想以“播放列表”样式保存录制的用户(不使用iTunes播放列表,而是使用本地播放列表)。 是否可以使用Objective-C(与当前提供的C实现相反)进行此操作-理想情况下,CoreData将用于存储音频。 谢谢     
已邀请:
这是我的操作方式: 1)找到SpeakHere代码创建的临时文件-在SpeakHereController类中查找.caf扩展名。然后将临时文件移动到应用程序目录,如下所示:
NSString *myFileName = @\"MyName\"; // this would probably come from a user text field
NSString *tempName = @\"recordedFile.caf\";
NSString *saveName = [NSString stringWithFormat:@\"Documents/%@.caf\", myFileName];
NSString *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:tempName];
NSString *savePath = [NSHomeDirectory() stringByAppendingPathComponent:saveName];
2)保存有关文件的一些元数据,至少要保留其名称。我将其放入NSUserDefaults中,如下所示:
NSDictionary *recordingMetadata = [NSDictionary dictionaryWithObjectsAndKeys:
                         myFileName, @\"name\",
                         [NSDate date], @\"date\",
                         nil];
[self.savedRecordings addObject:recordingMetadata]; // savedRecordings is an array I created earlier by loading the NSUserDefaults
[[NSUserDefaults standardUserDefaults] setObject:self.savedRecordings forKey:@\"recordings\"]; // now I\'m updating the NSUserDefaults
3)现在,您可以通过对self.savedRecordings进行迭代来显示已保存录音的列表。 4)当用户选择录制时,您可以轻松地使用所选文件名初始化AVAudioPlayer并进行播放。 5)要让用户删除录音,您可以执行以下操作:
NSString *myFileName = @\"MyName\";

// delete the audio file from the application directory
NSString *fileName = [NSString stringWithFormat:@\"Documents/%@.caf\", myFileName];
NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:fileName];
[[NSFileManager defaultManager] removeItemAtPath:filePath error:NULL];

// delete the metadata from the user preferences
for (int i=0; i<[self.savedRecordings count]; i++) {
    NSDictionary *thisRecording = [self.savedRecordings objectAtIndex:i];
    if ([myFileName isEqualToString:[thisRecording objectForKey:@\"name\"]]) {
        [self.savedRecordings removeObjectAtIndex:i];
        break;
    }
}
[[NSUserDefaults standardUserDefaults] setObject:self.savedRecordings forKey:@\"recordings\"];
请注意,如果您将音频文件保存到Documents文件夹中并在info.plist中启用“应用程序支持iTunes文件共享”,则用户可以将录音复制到应用程序之外并将其保存到计算机上。功能,如果您想提供它。     

要回复问题请先登录注册