2017年5月6日土曜日

iCloudの共有にアップロードされているVideoファイルの名前、作成日時を取得する例(swift)

iCloudの共有にあるアップロードされているVideoファイルの名前、作成日時(アップロード日時)を取得する例


  let sharedAlbums = PHAssetCollection.fetchAssetCollections(
      with: PHAssetCollectionType.album,
      subtype: PHAssetCollectionSubtype.albumCloudShared,

      options: fetchOptions)

  let assetsFetchResults = PHAsset.fetchAssets(in: sharedAlbums, options: nil)

//--------
    //Videoファイル名、作成日出力
    func printMovieList() {
        //assetsFetchResultsnilならreturn
        guard let assetsFetchResults = self.assetsFetchResults else { return; }
        //DateFormatter設定
        let dateFormatter = DateFormatter()
        dateFormatter.timeZone = TimeZone(identifier: "ja_JP")
        dateFormatter.dateFormat = "yyyyMMdd_HHmmss"
        //assetsFetchResultsの要素のループ
        assetsFetchResults.enumerateObjects(using: {(asset, i, stops) -> Void in
            //Videoの場合に実行
            if asset.mediaType == PHAssetMediaType.video {
                //iCloudへアクセスするようにOptionを設定
                let options = PHVideoRequestOptions()
                options.isNetworkAccessAllowed = true
                //PHAssetに対応するAVPlayerItemを取得
                let _ = self.imageManager.requestAVAsset(forVideo: asset,
                                                         options: options,
                    resultHandler: { (avAsset, avAudioMix, info) -> Void in
                        guard let urlAsset = avAsset as? AVURLAsset,
                            let fileName = urlAsset.url.path.components(separatedBy: "/").last
                            else { return; }
                        //ファイル作成日時を取得(nilならデフォルト値をセット)
                        let creationDate = dateFormatter.string(from:asset.creationDate ?? Date())
                        print("\(fileName)\t\(creationDate)")
                })
            }
        })

    }

0 件のコメント: