Метод записи AVAudioRecorder не работает в устройстве, но работает в симуляторе - PullRequest
2 голосов
/ 27 января 2011

У меня инициализация как:

    bool b;
 NSLog(@"url");
 NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];
NSLog(@"dizionario");
NSDictionary *audioSettings = [NSDictionary dictionaryWithObjectsAndKeys:
     [NSNumber numberWithFloat: 44100.0],                 AVSampleRateKey,
     [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
     [NSNumber numberWithInt: 1],                         AVNumberOfChannelsKey,
     [NSNumber numberWithInt: AVAudioQualityMax],         AVEncoderAudioQualityKey,
     nil];

NSError *error; 

recorder = [[AVAudioRecorder alloc] initWithURL:url settings:audioSettings error:&error];
NSLog(@"audio");
if (recorder) {
//NSLog(@"prepara");
[recorder prepareToRecord];
//NSLog(@"meter");
recorder.meteringEnabled = YES;
//NSLog(@"recorder");
b=[recorder record];
                    NSLog(@"%@",(b ? @"OK" : @"here it FAILS"));

} else {
NSLog(@"ERRORE:");
NSLog([error description]); 
}  
//NSLog(@"fine init");  

, поскольку я использую [запись рекордера] не удается.Как я могу знать, почему этот метод не работает?как я могу справиться с этой проблемой?спасибо

Ответы [ 3 ]

2 голосов
/ 15 июля 2014

У меня тоже была проблема, когда я мог записывать в симуляторе, но не на устройстве.Переход на использование NSTemporaryDirectory() работал для меня.

recordPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Sound.m4a"];
NSURL *url = [NSURL fileURLWithPath:recordPath];
1 голос
/ 28 января 2013

Вы должны настроить AVAudioSession. Посмотрите на эту ссылку она может помочь вам, я думаю.

И не забудьте активировать AVAudioSession в своем коде, если вы используете запись и воспроизведение в одном приложении.

0 голосов
/ 31 января 2011

Я написал похожий вопрос, но нашел свой ответ здесь , прежде чем опубликовать его.Можете ли вы написать «/ dev / null» на устройстве?это каталог там?Обязательно ищите ответы, прежде чем отправлять вопросы: - (.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...