Я только хочу, чтобы в библиотеке было одно видео типа. Используйте библиотеку по умолчанию. Мое приложение в настоящее время берет изображения и видео из каталога документов приложения, используя UIImagePickerController (.photoLibrary). Я хочу показать только один тип видео .mp4
import AVFoundation
import MobileCoreServices
import Photos
import UIKit
class CameraLibraryTestViewController: UIViewController {
@IBOutlet weak var imgView: UIImageView!
let picker = UIImagePickerController()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func bAction(_ sender: Any) {
picker.mediaTypes = ["public.image", "public.mp4"] // filter extesion mp4 didn't work,
picker.sourceType = .photoLibrary
picker.allowsEditing = false
picker.delegate = self
present(picker, animated: true)
}
}
extension CameraLibraryTestViewController: UINavigationControllerDelegate, UIImagePickerControllerDelegate {
public func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
viewController.navigationItem.title = "Jeri Library"
picker.setEditing(false, animated: true)
print("test or check: \(viewController.debugDescription)")
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
let assetPath = info[UIImagePickerControllerReferenceURL] as! NSURL
if (assetPath.absoluteString?.hasSuffix("MOV"))! {
print("MOV")
dismiss(animated: true) {
self.navigationController?.pushViewController(EmojiReadViewController(), animated: true)
}
}
else if (assetPath.absoluteString?.hasSuffix("MP4"))! {
print("MP4")
dismiss(animated: true) {
self.navigationController?.pushViewController(EmojiReadViewController(), animated: true)
}
}
else if (assetPath.absoluteString?.hasSuffix("M4V"))! {
print("M4V")
dismiss(animated: true) {
self.navigationController?.pushViewController(EmojiReadViewController(), animated: true)
}
}
else {
print("Unknown")
dismiss(animated: true, completion: nil)
}
}
}
Я пытался использовать mediaType [kUTTypeMPEG4 as String]
, но он по-прежнему не работает, то есть в didFinishPickingMediaWithInfo
, это только для фильтров после выбора из библиотеки.
Если я использую kUTTypeMovie
, он получает все видео в локальном хранилище