Ios 无法通过“导出音频文件”;在“中打开”;来自语音备忘录应用程序
我的应用程序高度依赖可以从其他应用程序导出到我的应用程序中的音频文件。 我的目标“信息”窗格中的“文档类型”配置为通过“打开位置:”从另一个应用程序的共享选项接受和导入3种不同类型的音频文件(mp3、m4a和aac)。 将音频从Mail或Dropbox导出到我的应用程序中是可行的,但语音备忘录甚至iMessage都拒绝将我的应用程序显示为共享选项 我发现通过Dropbox将语音备忘录中的音频导出到我的应用程序中是可行的。但这不是一个好方法,因为它应该直接起作用 有人知道怎么做才能让语音备忘录的音频输出正常工作吗Ios 无法通过“导出音频文件”;在“中打开”;来自语音备忘录应用程序,ios,iphone,Ios,Iphone,我的应用程序高度依赖可以从其他应用程序导出到我的应用程序中的音频文件。 我的目标“信息”窗格中的“文档类型”配置为通过“打开位置:”从另一个应用程序的共享选项接受和导入3种不同类型的音频文件(mp3、m4a和aac)。 将音频从Mail或Dropbox导出到我的应用程序中是可行的,但语音备忘录甚至iMessage都拒绝将我的应用程序显示为共享选项 我发现通过Dropbox将语音备忘录中的音频导出到我的应用程序中是可行的。但这不是一个好方法,因为它应该直接起作用 有人知道怎么做才能让语音备忘录的音
提前感谢您,Paul不确定这是否对您有帮助,您可能需要创建一个脚本来自动复制到剪贴板的功能,但请看 当发送选择栏打开“更多”时,按“应用”可显示接受音频文件的应用程序列表。只需在列表中选择一个应用程序,即可将与发送屏幕关联的备忘录发送给它 请注意,“应用”单元格仅在发送单个备忘录时可见(更改“自动发送”设置时不可用)
也可以将备忘录中包含的音频复制到剪贴板。然后,另一个应用程序可以读取剪贴板的内容以导入音频。要将音频复制到剪贴板,请长按备忘录列表中备忘录的名称,然后按出现的“复制”按钮。如果“复制”按钮未出现,则可能是您试图复制的备忘录太大(您不应尝试复制超过30MB的备忘录)。我确信,自发布此问题以来,已经发生了很多变化,但以下是我如何通过“复制到:”共享选项将音频文件从语音备忘录应用程序导出到我的应用程序
- 在XCode中,在我的目标的信息面板下,我添加了
文档类型,并将com.apple.m4a audio
(设置为支持就地打开文档
)添加到自定义iOS目标属性中(见下图)YES
- 在我的
中,我实现了AppDelegate
应用程序(uApp:UIApplication,打开url:url,选项:[UIApplicationOpenUrlOptions:Any]=[:])->Bool
AppDelegate
中实现)后立即在您自己的应用程序中播放所选语音备忘录:
导入UIKit
@UIApplicationMain
类AppDelegate:UIResponder、UIApplicationLegate{
让发动机=AVAudioEngine()
让player=AVAudioPlayerNode()
func应用程序(application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptions:[UIApplicationLaunchOptions:任何]?)->Bool{
返回真值
}
func应用程序(uApp:UIApplication,打开url:url,选项:[uiApplicationOpenUrlOptions:Any]=[:])->Bool{
guard let copyURL=URL(字符串:“test.m4a”,relativeTo:FileManager.default.temporaryDirectory)else{
返回错误
}
引擎。连接(播放器)
engine.connect(播放器,收件人:engine.mainMixerNode,格式:nil)
做{
//将语音备忘录复制到此应用的临时目录
尝试FileManager.default.copyItem(位于:url,收件人:copyURL)
//从复制的文件创建可读的音频文件
let file=尝试使用AVAudioFile(forReading:copyURL)
//将文件“加载”到播放机中
scheduleFile(文件,at:nil,completionHandler:nil)
尝试AVAudioSession.sharedInstance().setActive(true)
试试引擎启动()
}抓住{
打印(错误)
返回错误
}
player.play()
返回真值
}
}
请注意,此代码仅用于说明语音备忘录的url已正确传播到应用程序,以及如何将文件复制到临时目录。从那里,您可能希望将其传递给适当的ViewController
编辑:更改代码以说明如何复制文件我不知道为什么语音备忘的m4a文件无法导出到m4a处理应用程序,但您可以通过向应用程序添加共享扩展名,将应用程序添加到常用的应用程序集(消息、邮件、Slack)。您的用户需要点击“更多…”来启用它。您为我节省了大量时间。我只是通过将其加载到AVAudioPlayer并在应用程序数据模型中创建一个条目来使用它。