2012-02-23 78 views
2

我有一個具有錄製和回放功能的應用程序。這些工作正常。我也可以發送電子郵件的音頻文件。如何在iOS中正確創建可在iOS上聽到的音頻文件

如果我在電腦上閱讀電子郵件,我可以播放音頻文件。

我可以讀取iDevice上的電子郵件,但是如果我嘗試播放音頻文件,我會看到類似QT的東西彈出片刻,但隨後消息返回到屏幕。

如果我按住audiofile圖標,我會得到一個可以使用的應用程序列表 - 但它們都是文檔應用程序,而不是音頻應用程序。

soundfile有一個.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

問題可能不在音頻創建中,而是您如何將其附加到電子郵件。您是否正確設置了MIME類型,以便郵件客戶端知道如何讀取數據?對於.caf,您應該使用audio/x-caf MIME類型。

+0

也許是我太迅速做出反應。現在我發現電子郵件附件看起來像一個文件:( – 2012-02-24 03:58:33

+0

這聽起來像設備沒有任何應用程序知道如何播放.caf文件(是的,我知道這聽起來反直覺,因爲你是使用一個設備來記錄這個東西,但這是在操作系統中具有一個框架/庫的差異和一個可以實現它的應用程序之間的區別)或者嘗試下載專門用於播放.caf的應用程序,或嘗試將它編碼爲MP3(或更普遍的東西) 對不起,我沒有更多的幫助,我沒有那麼多的音頻體驗,所以我從通用的'數據編碼'的角度來看這個。 – Kevin 2012-02-24 14:26:02

1

解決該問題的代碼是:

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