PHAssetChangeRequest Сохранение в низком разрешении - PullRequest
0 голосов
/ 09 июня 2018

Я снимаю живое видео в приложении и сохраняю его с помощью PHAssetChangeRequest Однако видео сохраняется в видеопленке с очень низким разрешением.Если я возьму одно и то же видео (тот же телефон) из приложения камеры, оно сохранится в кадре с более высоким разрешением.

Из приложения сохраняется портрет в разрешении 360х480, а видео, снятое в приложении камеры, сохраняется в разрешении 720х1200.

ниже - код сохранения видео из моего приложения.Почему разрешение падает?

PHPhotoLibrary.shared().performChanges({
        PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: self.sharedManager.videoFileLocalURL)
    }, completionHandler: { (saved, error) in
        if error != nil
        {
            print ("Asset Saving Error: \(error.debugDescription)")
        }

        if saved == true
        {
            print ("Asset saved to library")
            let fetchOptions = PHFetchOptions()
            fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
            if let fetchedAsset = PHAsset.fetchAssets(with: .video, options: fetchOptions).lastObject
            {
                self.sharedManager.newzInfoInDraft.videoCreateDate = Date()
                self.processVideo(asset: fetchedAsset)
            }
            else
            {
                print ("Cannot fetch asset from library")
            }
        }
        else
        {
            print ("Asset not saved to library")
        }
    })
}

Обновление: вызов для захвата видео

let recordActionButton = UIAlertAction(title: "Record a video", style: .destructive)
        { _ in
            self.imagePickerController.sourceType = .camera
            self.imagePickerController.mediaTypes = [kUTTypeMovie as String]
            self.imagePickerController.delegate = self

            self.present(self.imagePickerController, animated: true, completion: nil)

        }

1 Ответ

0 голосов
/ 09 июня 2018

Цените Лео Дабуса, который указывает мне на природу проблемы.Одна строка кода, которая решает проблему, приведена ниже.Не полагаться на воспринимаемое значение по умолчанию - хороший урок здесь ...

self.imagePickerController.videoQuality = .typeHigh
...