2014-02-19 43 views
7

我想使用UIActivityViewController共享音頻文件(.aac)。這是我寫入沙盒文檔目錄的臨時文件。UIActivityViewController與NSURL音頻文件只顯示空投

我在initWithActivityItem:方法中通過NSURL

[audioData writeToFile:[urlToAudioFile path] options:NSDataWritingFileProtectionNone error:&error]; 

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[urlToAudioFile] applicationActivities:nil]; 
    [self.view.window.rootViewController presentViewController:activity animated:YES completion:^{ 
... 
}]; 

當我按下共享按鈕時,它需要幾秒鐘,活動表彈出唯一選項是Airdrop。

如何獲得其他選項,如電子郵件或iMessage顯示? 是否有回撥方式,以便我可以確定「共享」何時完成,以便我可以再次刪除臨時文件?

有沒有辦法讓我添加音頻文件,而不必先寫入磁盤?難道我不知何故只是通過NSData對象?

回答

4

如果您試圖共享實際文件,那麼您需要使用UIDocumentInteractionController,它設計用於共享整個文件。 UIActivityViewController是用於文本和圖像。

如果您需要向您的文件發送消息而不是打開另一個應用程序,請考慮爲UIDocumentInteractionController定製UIActivity,爲郵件創建另一個消息和另一個應用程序。見mfmailcomposeviewcontrollerMFMessageComposeViewController

見(蘋果開發者):https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html