Photos 獲取設(shè)備相冊(cè)數(shù)據(jù)⑤

(Swift)
第一步準(zhǔn)備:

import Photos    //導(dǎo)入Photos庫
PHPhotoLibraryChangeObserver    //簽訂協(xié)議
func photoLibraryDidChange(changeInstance: PHChange) {}  //實(shí)現(xiàn)協(xié)議方法,第一次獲取相冊(cè)信息時(shí)進(jìn)入(可在其中調(diào)用第二步)

第二步獲?。?/strong>

//  注冊(cè)通知
  PHPhotoLibrary.sharedPhotoLibrary().registerChangeObserver(self)
//  獲取所有系統(tǒng)圖片信息集合體
  let allOptions = PHFetchOptions()
//  對(duì)內(nèi)部元素排序(根據(jù)key可以看出這里是按照時(shí)間由遠(yuǎn)到近排序)
  allOptions.sortDescriptors = [NSSortDescriptor.init(key: "creationDate", ascending: true)]
//  將元素集合拆解開,此時(shí) allResults 內(nèi)部是一個(gè)個(gè)的PHAsset單元
  let allResults = PHAsset.fetchAssetsWithOptions(allOptions)
// 遍歷 allResults , 將視頻和圖片數(shù)據(jù)分開
  for i in 0..<allResults.count
  {
      let asset:PHAsset = allResults[i] as! PHAsset
      ........        //  根據(jù) asset.mediaType 屬性將asset進(jìn)行分類
  }

下面這幾個(gè)方法的執(zhí)行環(huán)境 : asychronously on the main thread (主線程異步執(zhí)行)
可先設(shè)置默認(rèn)的 image 和 size 。

設(shè)置圖片的 image 和 size :

 // libraryArrPhotos 設(shè)備相冊(cè)中的圖片數(shù)組
PHCachingImageManager.defaultManager().requestImageForAsset(libraryArrPhotos[indexPath.row] , 
                    targetSize: CGSizeZero, contentMode:
                    .AspectFit, options: nil)
    { (result: UIImage?, dictionry: Dictionary?) in   
           // 獲取圖片
           cell.cellImage.image = result 
    }

PHCachingImageManager.defaultManager().requestImageDataForAsset(libraryArrPhotos[indexPath.row], options: nil, resultHandler:
     { (data, string, orientation, object) in
            //  獲取圖片的大小(單位為B)
            var imageSize = Float(data!.length)    
      })
```
**設(shè)置視頻的 image 和 size :**
```
 // libraryArrVedios 設(shè)備相冊(cè)中的視頻數(shù)組
PHCachingImageManager.defaultManager().requestImageForAsset(libraryArrVedios[indexPath.row] , targetSize: CGSizeZero, contentMode:
                    .AspectFit, options: nil)
      { (result: UIImage?, dictionry: Dictionary?) in
             // 獲取視頻截圖       
             cell.cellImage.image = result 
      }

PHCachingImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler:
       { (asset, audioMix, info) in
             //  獲取視頻的大小(單位為B)
             let urlAsset = asset as! AVURLAsset
             let data = NSData.init(contentsOfURL: urlAsset.URL)
             let size = data?.length
       }
```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 子持蓮華是景天科瓦松屬多肉植物,原產(chǎn)于日本北海道,由牧野富太郎博士命名?!白映郑à长猡粒币鉃槭譅恐『?,“蓮華(...
    悠然小蝦閱讀 1,540評(píng)論 1 3
  • 如今的“高考”勢(shì)能兇猛,能夠讓全社會(huì)與所有考生們“感同身受”——即便你沒有跟著一起神經(jīng)緊繃,但你也“被迫”關(guān)注了,...
    Jack胡閱讀 2,635評(píng)論 5 17
  • 車子走走停停,猶豫不決的試探著前進(jìn),雨水拼命的拍打著玻璃,雨刷一刻不停的工作著。在蜿蜒而又狹窄的路上,陌生的記憶再...
    向風(fēng)生閱讀 376評(píng)論 1 1
  • 朝陽中小店清早便開門掛上淡藍(lán)色招牌等候著買豆?jié){的姑娘當(dāng)朝陽問候地平線在一個(gè)人的小店喝上一杯熱的豆?jié){當(dāng)眸中清澈俞明顯...
    太七的貓閱讀 171評(píng)論 0 6

友情鏈接更多精彩內(nèi)容