Как правильно создать аудиофайл в Xcode, который можно услышать в почте iOS - PullRequest
2 голосов
/ 23 февраля 2012

У меня есть приложение с возможностями записи и воспроизведения.Они работают нормально.Я также могу отправить аудиофайл по электронной почте.

Если я читаю электронную почту на компьютере, я могу воспроизвести аудиофайл.

Я могу прочитать электронную почту на iDevice, но если я попытаюсьво время воспроизведения аудиофайла, на мгновение я вижу что-то вроде QT, но затем сообщение возвращается на экран.

Если я удерживаю значок аудиофайла, я получаю список приложений, которые можно использовать- но все они являются приложениями для документов, а не приложениями для аудио.

Звуковой файл имеет суффикс .caf (Базовый формат аудио).

Мой аудиофайл создается следующим образом:

NSMutableDictionary* recordSettings = [[NSMutableDictionary alloc] init];

[recordSettings setValue :[NSNumber numberWithInt:kAudioFormatAppleIMA4]     forKey:AVFormatIDKey];
[recordSettings setValue :[NSNumber numberWithInt:16]                           forKey:AVEncoderBitRateKey];
[recordSettings setValue :[NSNumber numberWithFloat:44100.0]                    forKey:AVSampleRateKey]; 
[recordSettings setValue :[NSNumber numberWithInt: 2]                              forKey:AVNumberOfChannelsKey];

NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]

initWithURL:soundFileURL settings:recordSettings error:&error];

if (error)
{
NSLog(@"error: %@", [error localizedDescription]);
} else {
// ALL IS OK, START RECORDING
//NSLog(@"DetailVC - recordAudio -  soundFilePath is %@", soundFile);
[audioRecorder prepareToRecord];
recordToggle = 1;

[autoCog startAnimating];
[audioRecorder record];     

recordingTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                                         target:self
                                                       selector:@selector(recordingOn)
                                                       userInfo:nil
                                                        repeats:YES];

}

Спасибо за любой совет.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Возможно, проблема не в создании аудио, а в том, как вы прикрепляете его к электронному письму.Правильно ли вы устанавливаете тип MIME, чтобы почтовый клиент знал, как читать данные?Для .caf вы должны использовать тип audio/x-caf MIME.

1 голос
/ 24 февраля 2012

Код для решения проблемы:

NSData *soundData = [NSData dataWithContentsOfFile:soundFile];
[mailer addAttachmentData:soundData mimeType:@"audio/mpeg" fileName:@"YourFile.mp3"]; 
...