Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

URL을 사용하여 비디오를 다운로드하고 Swift를 사용하여 사진 앨범에 저장하는 방법은 무엇입니까?


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 요소가 없으므로 화면에 결과가 표시되지 않을 것으로 예상하고 출력에 인쇄 명령문만 표시되며 성공적으로 완료되면 비디오가 사진 앱에서 볼 수 있는 사진에 저장됩니다. .