所以我在线学习了一些教程,为iphone创建了一个录音机应用程序,可以录制和播放声音文件。
但我找不到任何允许我将录音保存到表格视图然后选择要播放的文件的教程。任何人都可以指导我修改我的代码以添加保存和删除功能吗?
我的代码:
(无效)viewDidLoad中 { [super viewDidLoad];
// Disable Stop/Play button when application launches
[stopButton setEnabled:NO];
[playButton setEnabled:NO];
// Set the audio file
NSArray *pathComponents = [NSArray arrayWithObjects:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
@"MyAudioMemo.m4a",
nil];
NSURL *outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];
// Setup audio session
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
// Define the recorder setting
NSMutableDictionary *recordSetting = [[NSMutableDictionary alloc] init];
[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
// Initiate and prepare the recorder
recorder = [[AVAudioRecorder alloc] initWithURL:outputFileURL settings:recordSetting error:NULL];
recorder.delegate = self;
recorder.meteringEnabled = YES;
[recorder prepareToRecord];
}
答案 0 :(得分:0)
我将使用各种NSFileManager
实用程序来控制保存和删除。 AVAudioRecorder
在调用prepareToRecord
时会在磁盘上创建一个文件,因此录制后的选项为:
[[NSFileManager defaultManager]removeItemAtPath:path error:&error];
)对于tableview,您可以使用NSArray *fileNames = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:theDirectoryPath error:&error];
获取音频文件名。 (顺便说一句 - 我创建了一个docs目录的子目录,特别是对于音频,所以你知道你所看到的目录中的所有内容都是一个音频文件。 - 还有一个NSFileManager方法。如上所述删除,大概使用AVAudioPlayer
和NSFileManager
调用中的路径,在适当的委托/数据源方法中播放