Аудио запись iPhone с экспортом / электронной почтой - PullRequest
0 голосов
/ 29 августа 2010

Я искал на всем сайте Apple и в Интернете, а также Stackoverflow. У кого-нибудь есть пример кода или учебное пособие о том, как записать звук со встроенного микрофона, а затем экспортировать этот звук по электронной почте? Пожалуйста, мне действительно нужно это для моего приложения. Спасибо.

1 Ответ

1 голос
/ 29 августа 2010

Я использовал код из примера приложения Apple SpeakHere для записи звука со встроенного микрофона в файл wav «записалфайл.wav», затем добавил следующие методы в контроллер представления для отправки файла wav по электронной почте как вложение: *

- (void)mailComposeController:(MFMailComposeViewController*)controller
          didFinishWithResult:(MFMailComposeResult)result
                        error:(NSError*)error {
        [self becomeFirstResponder];
        [self dismissModalViewControllerAnimated:YES];
}

- (void)mailAttachedWavFile {
        MFMailComposeViewController *picker = 
          [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;
        [picker setSubject:@"My Wav File"];  // optional
        NSString *fileName = @"recordedFile.wav";  // whatever
        NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                              NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName];
        NSData   *data = [NSData dataWithContentsOfFile:path];
        [picker addAttachmentData:data mimeType:@"audio/x-wav"
                                       fileName:fileName];
        NSString *emailBody = @"Wav format sound file attached.";  // optional
        [picker setMessageBody:emailBody isHTML:YES];
        [self presentModalViewController:picker animated:YES];
        [picker release];
}

Вы можете сделать метод mailAttachedWavFile IBOutlet с помощью кнопки. Не забудьте объявить контроллер как MFMailComposeViewControllerDelegate в заголовочном файле.

...