swift 如何访问存储在另一个应用程序中的声音文件?

how to access a sound file stored in another app in swift?

这个问题很像 Share data between two or more iPhone applications 除了:

(这基本上排除了使用共享 sheet 和自定义 url 来传递数据,如上文 post 所述)

我在第一个应用程序中使用 AVAudioPlayerAVAudioSession 来播放声音,如果这有帮助的话。

如果这两个应用都是您的,您可以在第二个应用中实施自定义 url 方案,然后从第一个应用询问它是否知道如何使用该方案打开 URL。如果答案是肯定的,则安装该应用程序。该函数称为 canOpenURL。它是 UIApplication.

的实例方法

我依稀记得在iOS 9及以后的版本中,Apple添加了一个限制,你必须在你的info.plist中注册你要询问的URL,但是我不记得细节了。这不会阻止此方案的工作,但这是您必须采取的额外步骤。

使用应用组

您可以通过 NSUserDefaults:

分享实际 NSData
if let userDefaults = NSUserDefaults(suiteName: <group>) {
    userDefaults.setObject(obj, forKey: key)
}

并从同一组中的另一个应用程序中检索,如下所示:

if let userDefaults = NSUserDefaults(suiteName: <group>) {
    if let obj = userDefaults.objectForKey(key)  {
        // magic
    }
}

似乎通过用户默认设置传递数据的唯一限制是设备存储容量,并且由于 NSUserDefaults 接受 NSData 作为存储格式,它成为共享花絮的主要候选者信息。