我制作了一个SwiftUI DocumentApp,它可以读取大型媒体文件,但不需要编写它们。在我的文档中,我只想存储文件的URL,这样我就可以使用例如AVAudioFile加载它。如果不创建文件的临时副本,我就无法解决如何做到这一点,就像作者在这里所做的那样,因为无法从fileWrapper 访问文件URL
我曾尝试使用configuration.file.regular FileContents(Data(创建一个管道,但到目前为止,我没有成功读取该管道。
init(configuration: ReadConfiguration) throws {
let tempURL = makeTemporaryFileURL()
FileManager.default.createFile(atPath: tempURL.path, contents: configuration.file.regularFileContents, attributes: nil)
audioFileUrl = tempURL
}
您可以通过文档配置获得fileURL
,如
@main
struct MyApp: App {
var body: some Scene {
DocumentGroup(viewing: MyDocument.self) { fileConfig in
// here fileConfig has `fileURL` of opened document, so
MyViewer(content: fileConfig.document, url: fileConfig.fileURL)
}
}
}