[英]How To save Recorded audio to my app?
请帮我,我很累在stackOverflow中使用以下答案获得答案
我的代码是
- (IBAction)RecordBtnClicked:(UIButton *)sender {
if (sender.isSelected) {
if (!recorder.recording) {
[session setActive:YES error:nil];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
temporaryRecFile = [prefs URLForKey:@"Test1"];
player = [[AVAudioPlayer alloc]initWithContentsOfURL:temporaryRecFile error:nil];
player.delegate = self;
player.volume = 1;
[player prepareToPlay];
[player play];
[sender setSelected:false];
}
`[recordBtn setImage:[UIImage imageNamed:@"a_recordp.png"] forState:UIControlStateSelected];
[recorder stop];
}`else{
if (player.playing) {
[player stop];
}`
if (!recorder.recording) {
[recordBtn setImage:[UIImage imageNamed:@"a_records.png"] forState:UIControlStateSelected];
NSString *documentPath = [pathComponent objectAtIndex:0];
NSString *pathTosave =[documentPath stringByAppendingPathComponent:[self fileNameForRecording]];
NSURL *url = [NSURL fileURLWithPath:pathTosave];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setURL:url forKey:@"test1"];
session = [AVAudioSession sharedInstance];
[session setActive:YES error:Nil];
// temporaryRecFile = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByDeletingLastPathComponent]];
[recorder record];
recordTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateTimeInterval) userInfo:nil repeats:YES];
}
[sender setSelected:true];
[discardBtn setHidden:false];
[saveBtn setHidden:false];
}
}
我有一个按钮在第一次点击开始录制,在第二次点击停止录制相同的按钮,再一次点击同一按钮录制第三次,我想播放相同的声音,但没有得到想要的文件。
temporaryRecFile = [prefs URLForKey:@"Test1"];
它给出零值? 如果我以错误的方式编写代码,请为此提供一些建议? 任何答案将不胜感激预先感谢
有时您不能依靠iOS
保存数据,您需要通过同步来强制它这样做。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setURL:url forKey:@"test1"];
[prefs synchronize]; //this will ensure it is written to the disk
我还能给您的一个建议是拆分按钮功能,您在此IBAction中做的太多了(录制,停止录制和播放)。 最好有两个按钮,第一个是recordOrStop()
和playOrStop()
但这只是我的观点,因为这样可以避免出现问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.