URL에서 비디오를 신속하게 다운로드하려면 몇 가지 사항을 염두에 두고 몇 가지 단계를 수행해야 합니다.
여기서 주목해야 할 점은,
-
인터넷을 사용하여 비디오를 다운로드할 것이므로 Info.plist에서 앱 전송 보안에 대한 권한을 허용해야 합니다.
-
다운로드한 동영상을 사진 앱에 저장해야 하므로 사진 권한이 필요합니다.
-
동영상을 포그라운드에서 다운로드하면 앱을 사용하지 못할 수 있으므로 항상 백그라운드에서 다운로드해야 합니다.
이제 아래 코드를 사용하여 장치의 임의 링크에서 비디오를 저장합니다. 앱을 실행하는 동안 사진 권한을 허용해야 합니다.
이제 먼저 다음 코드를 info.plist 파일에 추가하십시오.
<key>NSPhotoLibraryUsageDescription</key> <string>saves</string> <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
그런 다음 아래에 표시된 함수를 추가하고 클래스의 viewDidLoad 메서드 내에서 호출합니다.
이제 viewDidLoad는 다음과 같아야 합니다.
override func viewDidLoad() { super.viewDidLoad() self.downloadVideo() }
아래는 동영상 다운로드 기능에 대한 코드입니다.
func downloadVideo() { let sampleURL = "https://commondatastorage.googleapis.com/gtv-videosbucket/sample/ElephantsDream.mp4"DispatchQueue.global(qos: .background).async { if let url = URL(string: sampleURL), let urlData = NSData(contentsOf: url) { let galleryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]; let filePath="\(galleryPath)/nameX.mp4" DispatchQueue.main.async { urlData.write(toFile: filePath, atomically: true) PHPhotoLibrary.shared().performChanges({ PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: URL(fileURLWithPath: filePath)) }) { success, error in if success { print("Succesfully Saved") } else { print(error?.localizedDescription) } } } } } }
화면에 다른 UI 요소가 없으므로 화면에 결과가 표시되지 않을 것으로 예상하고 출력에 인쇄 명령문만 표시되며 성공적으로 완료되면 비디오가 사진 앱에서 볼 수 있는 사진에 저장됩니다. .