【发布时间】:2021-02-17 06:27:41
【问题描述】:
-
从 CameraView 中的按钮填充 videoClips 数组后,如何从 CameraService 获取数据。
-
我希望能够按下一个按钮并通过 AVPlayerItems 数组移动到一个新屏幕。
-
即使我知道 CameraService 的数组中有数据,我的按钮也总是打印 0
public class CameraService: NSObject, AVCaptureFileOutputRecordingDelegate {
@Published public var videoClips = [AVPlayerItem]()
public func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) {
let video: AVPlayerItem = AVPlayerItem(url:outputFileURL)
videoClips.append(video)
}
}
final class CameraModel: ObservableObject {
private let service = CameraService()
var videoClips: [AVPlayerItem]
init() {
videoClips = service.videoClips
}
}
struct CameraView: View {
@StateObject var model = CameraModel()
var body: some View {
Button("video") {
print(model.videoClips.count)
}
}
}
【问题讨论】: