MFMailComposer可以发送m4a文件,但不能在另一端读取它。

时间:2014-02-27 07:37:02

标签: ios audio format m4a

我已经使用MFMailComposer发送由AVAudioRecorder创建的m4a文件,但我无法在我的mac上播放它。当我通过xcode管理器下载应用程序包时,我仍然无法播放原始m4a。有谁知道如何让m4a玩?我已经尝试通过核心音频(使用Dirac库)格式化我自己的m4a,但我仍然有相同的没有播放m4a问题。似乎AVAudioRecorder应该制作完美格式的文件,因为它们都在那里抽象,但似乎只有AVAudioRecorder才能理解格式(甚至itunes都不会读取它)。

这是我的邮件代码:

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
    mailer.mailComposeDelegate = self;
    [mailer setSubject:@"Feedback"];

    NSArray *toRecipients = [NSArray arrayWithObjects:@"info@x.com", nil];
    [mailer setToRecipients:toRecipients];

    NSArray *pathComponents = [NSArray arrayWithObjects:
                               [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
                               @"sound.m4a",
                               nil];

    NSURL *urlfile = [NSURL fileURLWithPathComponents:pathComponents];
    NSError* error = nil;
    NSData* audioData = [NSData dataWithContentsOfURL:urlfile options:0 error:&error];

    [mailer addAttachmentData:audioData mimeType:@"audio/mp4" fileName:@"sound.m4a"];

    NSString *emailBody = @" ";
    [mailer setMessageBody:emailBody isHTML:NO];

1 个答案:

答案 0 :(得分:1)

请检查以下内容:

NSData* audioData = [NSData dataWithContentsOfURL:urlfile options:0 error:&error];

if(audioData.length)

然后只添加邮件。

路径网址文件可能存在问题。