我正在使用新的SwiftUI。4.0用于IOS 16 Beta。我正在使用新的照片选择器,可以同时看到图片和视频在画廊。一旦我选择了一个图像,我可以显示它在视图,但不确定我如何可以做同样的视频。任何建议都是很好的,因为我正在练习。这是我的密码..。
import SwiftUI
import PhotosUI
struct ContentView: View {
@State var selectedItems: [PhotosPickerItem] = []
@State var data: Data?
var body: some View {
VStack {
if let data = data, let uiimage = UIImage(data: data) {
Image(uiImage: uiimage)
.resizable()
}
PhotosPicker(selection: $selectedItems,
maxSelectionCount: 1,
matching: .any(of: [.images,.videos])) {
Text("Pick Photo")
}.onChange(of: selectedItems) { newItem in
guard let item = selectedItems.first else {
return
}
item.loadTransferable(type: Data.self) { result in
switch result {
case .success(let data):
if let data = data {
self.data = data
} else {
print("data is nil")
}
case .failure(let failure):
print("Failed: \(failure)")
}
}
}
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}发布于 2022-09-05 06:13:55
对于视频,您应该得到一个URL,您必须解码数据,得到URL,然后使用VideoPlayer显示视频:
@State var url: URL?
...
if let url {
VideoPlayer(player: AVPlayer(url: url))
}我不确定解码部分,因为我还没有试过,但首先尝试加载URL,然后加载Data。现在从那个String创建一个Data,最后设置url。
发布于 2022-09-30 22:15:09
https://stackoverflow.com/questions/73603427
复制相似问题