AVAudioRecorder не запишет на устройстве

Это - мой метод:

-(void) playOrRecord:(UIButton *)sender {
    if (playBool == YES) {
        NSError *error = nil;
        NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat: @"%d", [sender tag]] ofType:@"caf"];
        NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
        AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
        [player setNumberOfLoops:0];
        [player play];      
    }
    else if (playBool == NO) {
        if ([recorder isRecording]) {
            [recorder stop];
            [nowRecording setImage:[UIImage imageNamed:@"NormalNormal.png"] forState:UIControlStateNormal];
            [nowRecording setImage:[UIImage imageNamed:@"NormalSelected.png"] forState:UIControlStateSelected];
        }
        if (nowRecording == sender) {
        nowRecording = nil;
        return;
        }
        nowRecording = sender;
        NSError *error = nil;
        NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat: @"%d", [sender tag]] ofType:@"caf"];
        NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
        [sender setImage:[UIImage imageNamed:@"RecordingNormal.png"] forState:UIControlStateNormal];
        [sender setImage:[UIImage imageNamed:@"RecordingSelected.png"] forState:UIControlStateSelected];        
        recorder = [[AVAudioRecorder alloc] initWithURL:fileUrl settings:recordSettings error:&error];
        [recorder record];
    }
}

Большая часть из него сам объяснительная; playBool является BOOL, который является ДА, когда это находится в режиме воспроизведения. Все работает в средстве моделирования однако, когда я выполняю его на устройстве, [запись устройства записи] возвращается НЕТ. У кого-либо есть подсказка относительно того, почему это происходит?

6
задан Dyldo42 20 April 2010 в 15:22
поделиться

2 ответа

Хорошо, решил свой вопрос; Я не знаю почему, но мне нужно записывать в NSTemporaryDirectory на устройстве. Его изменение полностью устранило.

3
ответ дан 8 December 2019 в 04:08
поделиться

Это связано с тем, что вы не можете изменить пакет приложений на устройстве (он подписан). Вы можете записывать либо в папку docs для вашего приложения, либо в каталог tmp.

4
ответ дан 8 December 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: