보기 컨트롤러 (음성 메모)에 오디오를 녹음하고 있습니다. 이 작동합니다. 사용자가보기 컨트롤러를 닫지 않는 한 녹음 된 오디오를 재생할 수 있습니다. 사용자가 뷰 컨트롤러를 일축하고 AVAudioPlayer를 초기화하는, 다시보기 컨트롤러를 여는 경우AVAudioPlayer가 초기화되지 않는 이유는 무엇입니까? OSStatus 오류가 발생했습니다 (1685348671)?
그러나 나는 또한을 NSData와 플레이어 초기화하기 위해서 노력 1685348671.
OSStatus 오류와 함께 실패 NSData *data = [[NSData alloc] initWithContentsOfURL:_outputFileURL]; _player = [[AVAudioPlayer alloc] initWithData:data error:&error2];
,하지만 그 것
나는 모든 튜토리얼을 따라했지만. 어떻게 든 나는 그것을 작동시키지 못한다. ... 이 오류는 잘못된 파일을 가리키는 것으로 보이지만, 확실하지는 않습니다. 그러나 Organizer에서 응용 프로그램을 다운로드하여 Mac에서 열면 파일을 재생할 수 있으므로 파일 자체가 손상되지 않습니다.
여기 내 기록 방법 :
- (IBAction)recordPauseTapped:(id)sender {
// Stop the audio player before recording
if (_player.playing) {
[_player stop];
}
if (!_recorder.recording) {
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
// Start recording
[_recorder record];
[recordPauseButton setTitle:@"Pause" forState:UIControlStateNormal];
} else {
// Pause recording
[_recorder pause];
[recordPauseButton setTitle:@"Aufnahme" forState:UIControlStateNormal];
}
[stopButton setEnabled:YES];
[playButton setEnabled:NO];
}
녹음 작업, 파일은 문서 디렉토리에 존재한다. 여기
이 파일을 사용자없이 뷰 컨트롤러 떠나와, 직전에 촬영 한 경우 작동 내 플레이 방법입니다 : 여기- (IBAction)playTapped:(id)sender {
if (!_recorder.recording){
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setActive:YES error:nil];
NSError *error;
BOOL success = [audioSession overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
if(!success)
{
NSLog(@"error doing outputaudioportoverride - %@", [error localizedDescription]);
}
NSError *error2;
NSLog(@"_outputFileURL: %@", _outputFileURL);
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:_outputFileURL error:&error2];
if (error2) {
NSLog(@"error initialising player - %@", [error2 localizedDescription]);
}
[_player setDelegate:self];
[_player play];
}
}
그리고 나의 viewDidLoad에 있습니다 :
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.translucent = NO;
[stopButton setEnabled:NO];
// Set the audio file
if ([_audioFileName isEqualToString:@""]) {
NSString *guid = [[NSUUID new] UUIDString];
_audioFileName = [NSString stringWithFormat:@"audio-%@.m4a", guid];
[playButton setEnabled:NO];
} else {
[playButton setEnabled:YES];
}
NSLog(@"_audioFileName: %@", _audioFileName);
NSArray *pathComponents = [NSArray arrayWithObjects:
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
_audioFileName,
nil];
_outputFileURL = [NSURL fileURLWithPathComponents:pathComponents];
// Setup audio session
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[session setActive:YES 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:nil];
_recorder.delegate = self;
_recorder.meteringEnabled = YES;
[_recorder prepareToRecord];
}