【发布时间】:2021-12-28 21:01:56
【问题描述】:
我一直在尝试实现 AVFoundation 的框架 AVFAudio,以便根据用户选择的预设来录制音频、播放音频以及更改音频数据。我也一直在尝试找出如何将文件本地保存到用户的设备,但是,在阅读苹果关于 AVFAudio 的文档后,我几乎无法理解创建这些文件时要采取哪些步骤。我一直在关注https://www.raywenderlich.com/21868250-audio-with-avfoundation/lessons/1,并设法在这里设置了一些功能。
这里我已经设置了保存音频,但正如你所见,这只会将音频保存到一个临时目录中。我想知道如何将音频文件本地保存到用户的设备。
// MARK: Saving audio
var urlForVocals: URL {
let fileManger = FileManager.default
let tempDirectory = fileManger.temporaryDirectory
let filePath = "TempVocalRecording.caf"
return tempDirectory.appendingPathComponent(filePath)
}
在使用 AVFAudio 时,我通常对 AVFoundation 的框架感到困惑,并且文档 https://developer.apple.com/documentation/avfaudio 没有详细说明如何实现每种方法。例如;该文档指出,对于创建音频播放器:我们需要 init(contentsOf:url),但没有说明 url 是什么以及我们为什么使用它?任何人都可以帮助我了解进一步采取哪些步骤,我觉得我在绕圈子试图理解这个框架和苹果文档。
【问题讨论】:
-
"我们需要 init(contentsOf:url),但不涉及 url 是什么以及我们使用它的原因" -- URL 是您要播放的文件。否则,播放器不知道您从哪里播放音频数据。
-
@jnpdx 我不明白,如何播放尚未录制的文件?我们是在创建该文件本身吗?你能再深入一点吗?
-
我特别指的是您问题的第二部分,您询问有关创建播放器的问题。在录制文件之前,您不会这样做。如果以后有时间我可以写一个答案,包括录音部分。
-
@jnpdx 是的,我很感激,因为过去两周我花了很多时间试图理解苹果文档以及如何使用这个 SDK。 SDK的流程我懂,但是不懂怎么用
标签: swift avfoundation avaudiorecorder avaudioengine avaudiofile