Сохранение локального видео на камеру приводит только к 1 сохраненному кадру - PullRequest
0 голосов
/ 16 июня 2019

Редактировать: Это симулятор.Я запускал его на «реальном» устройстве, и оба метода работали.Ответ о том, как заставить его работать, симулятор все равно ответил бы на этот вопрос.

Я пытаюсь сохранить видео с локального URL-адреса в списке камер.Я много раз встречал один и тот же вопрос на этом сайте, но, к сожалению, мне трудно сохранять простое видео в кадре с камерой.

Сохраняется только кадр видео вповорот камеры.

Я создал два пути воспроизведения.

  1. Github: https://github.com/Jasperav/VideoGlitch (клонировать, запустить, подождать несколько секунд и перейтик рулону камеры, только рамка)

  2. Код

Не забудьте добавить эти ключи в info.plist

Конфиденциальность - описание использования библиотеки фотографий

и

Конфиденциальность - описание использования библиотеки мультимедиа

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let randomURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!.appendingPathComponent("\(Int.random(in: 1...10000)).mp4")
        let downloadVideoURL = URL(string: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4")!

        PHPhotoLibrary.requestAuthorization({ _ in })

        URLSession.shared.dataTask(with: downloadVideoURL) { (data, _, _) in
            try! data!.write(to: randomURL)

            if UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(randomURL.relativePath) {
                print("Done saving method 1")
                UISaveVideoAtPathToSavedPhotosAlbum(randomURL.relativePath, nil, nil, nil)
            }
            PHPhotoLibrary.shared().performChanges({
                PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: randomURL)
            }) { saved, error in
                print("Done saving method 2")
                // TODO: Error handler
                assert(error == nil && saved)
            }

            print("Done with saving")
        }.resume()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...