gpt4 book ai didi

ios - 照片库中的视频图 block

转载 作者:行者123 更新时间:2023-11-30 11:04:07 25 4
gpt4 key购买 nike

所以我一直在互联网上寻找一种方法来实现拥有视频图 block 的目标。我当前的实现实现了仅显示视频的目标,但我必须先进入相机胶卷才能看到它们。我想要的只是有一个标题或专辑,只显示视频,这样当您进入那里时,视频就在那里,并显示视频的数量,而不是相机胶卷,其中包含存在的所有内容的数量,然后当您进入时在那里你可以看到视频。我已将 imagepickerController 源类型更改为 photoLibrary,并且已更改 mediaTypes 以正确考虑视频。因此,对于那些可能将其添加为答案的人来说,更改这一行并不是答案。

enter image description here

我已经添加了 imagepickercontroller 的代码

import Foundation
import Eureka
import MobileCoreServices

/// Selector Controller used to pick an video
open class ImagePickerController : UIImagePickerController, TypedRowControllerType, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

/// The row that pushed or presented this controller
public var row: RowOf<URL>!
//setting navigation controller delegate

/// A closure to be called when the controller disappears.
public var onDismissCallback : ((UIViewController) -> ())?

open override func viewDidLoad() {
super.viewDidLoad()
delegate = self
allowsEditing = (row as? _VideoRow)?.allowEditor ?? false
mediaTypes = [kUTTypeMovie as String, kUTTypeVideo as String]
}
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let videoURL = info[UIImagePickerControllerMediaURL] as? URL else {
return
}

(row as? _VideoRow)?.videoURL = videoURL
(row as? _VideoRow)?.value = videoURL
onDismissCallback?(self)
}

open func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
onDismissCallback?(self)
}

public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
viewController.navigationItem.title = "Videos"
}

}

有什么问题吗?或者有人可以指出我要去哪里,向我展示如何创建视频图 block 或相册,或者向我展示一个示例。我最终想要这样的东西

enter image description here

虽然只有视频专辑

最佳答案

与任何其他媒体类型一样,视频不是相册,因此您不能仅从 UIImagePickerController 请求它。事实上,UIImagePickerController 可能不会适合您的用例,因为它的功能非常有限。

基本上,就像在 macOS 桌面上一样,没有一个文件夹只包含您的视频。你必须查询它。在 iOS 中,您可以通过在 PHAsset 上调用 fetchAssetsWithMediaType:options: 来实现此目的(当然将媒体类型设置为 .video)。您可以使用谓词 (NSPredicate) 缩小结果范围,或使用排序描述符 (NSSortDescriptor) 对其进行排序,两者均在 PHFetchOptions 上设置。您可以将整个内容包装在一个数据源中,该数据源还可以为您提供其他相册,例如相机胶卷或您需要的任何其他内容。这将是使用 PHAsset* 函数的自定义代码,仅返回您感兴趣的集合/ Assets 。

获得数据源后,您可以使用它构建您的 UI。您可以使用简单的 UITableView 和一些自定义单元格来完成您想要的 UI,但现在您还需要负责获取每个专辑的专辑封面、标题、计数等。您还可以将该逻辑委托(delegate)给数据源,以便您的 UI 仅从中读取。 PHAsset* 类中内置了许多异步行为,因此您需要确保正确处理这些行为。然后,您需要考虑远程 iCloud 内容,默认情况下不包含该内容,因此您需要将 includeAssetSourceTypes 设置为 PHFetchOptions 上的正确值。

所有这些都是大量的工作。特别是如果您希望 UIImagePickerController 上有一个方便的方法或 bool 值来满足您的需求。我不知道,所以长路是我能想到的唯一方法。然而,市面上有大量的图像选择器,其中很多都带有开放许可证。我推荐你谷歌一些,看看是否有你需要的。如果没有,您随时可以DIY。

关于ios - 照片库中的视频图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52934513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com