亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

Swift 共享文件操作小結(iOS 8 +)

2020-07-26 03:18:04
字體:
來源:轉載
供稿:網友

前言

  適用于 iOS 8 + 本地共享文件列表

正文

  一、準備

    1.1  默認 App 的文件共享是關閉的,需要在 plist 中設置啟用:

    Application supports iTunes file sharing  設置為  YES

啟用后把設備連接到 iTunes 上,在 iTunes 應用里的文件共享就能看到你的 App 了(如果看不見需要斷開重新拔插一下數據線),可以拷貝一些視頻進去,便于測試。

    1.2  導入庫

      Photos.framework

      AVKit.framework  用于播放視頻    

  二、獲取視頻列表

 private let VIDEO_EXTENSIONS = [    ".MOV", ".MP4"  ]  private var fileManager = NSFileManager.defaultManager()    func loadVideos() {    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)    if paths.count > 0 {      let documentsDirectory = paths[0] as String      let documentUrl = NSURL(fileURLWithPath: documentsDirectory, isDirectory: true)      do {        documentUrl.path        let files = try fileManager.contentsOfDirectoryAtPath(documentsDirectory)        for file in files {          fetchVideos(documentUrl.URLByAppendingPathComponent(file).path ?? "")        }      }  catch {              }            self.tableView.reloadData()    }  }    func fetchVideos(path: String) {    var isDir: ObjCBool = false    if !path.isEmpty && fileManager.fileExistsAtPath(path, isDirectory: &isDir) {      if isDir {        do {          let files = try fileManager.contentsOfDirectoryAtPath(path)          for file in files {            fetchVideos(file)          }        } catch {        }      } else {        var file = File(path: path)        if file.isValid() && isVideoFileExtension(file.fileExtension.uppercaseString) {          do {            if let attr: NSDictionary = try fileManager.attributesOfItemAtPath(path) {              file.fileSize = attr.fileSize()            }          } catch {          }          videos.append(file)        }      }    }  }    func isVideoFileExtension(ext: String) -> Bool {    for videoExtension in VIDEO_EXTENSIONS {      if ext == videoExtension {        return true      }    }    return false  }    struct File {    var fileExtension = ""    var fileName = ""    var path = ""    var assert: AVURLAsset?    var url: NSURL!    var fileSize: UInt64 = 0        init(path: String) {      self.path = path      self.url = NSURL(fileURLWithPath: path)      self.fileName = url.lastPathComponent ?? ""      self.fileExtension = "." + (url.pathExtension ?? "")    }        func isValid() -> Bool {      return !(fileName.isEmpty || fileExtension.isEmpty)    }  }

代碼說明:

      a)需要注意一些 swift 的用法,例如 fileExistsAtPath 的用法

      b)還有 String 的 pathExtension 和 lastPathComponent 都沒了,都改到了 NSURL 下面去了,網上很多資料都還是從 NSString 或者 String 取這些屬性

      c)AVURLAsset 可以取到視頻的時長 CMTimeGetSeconds(AVURLAsset(URL: file.url, options: nil).duration)

  三、播放視頻

 func play(file: File) {    let player = AVPlayer(URL: file.url)    let playerViewController = AVPlayerViewController()    playerViewController.player = player    self.presentViewController(playerViewController, animated: true) {      playerViewController.player?.play()    }  }

        四、用 ... 打開

 func openIn(file: File, indexPath: NSIndexPath) {    let document = UIDocumentInteractionController(URL: file.url)    let rect = self.tableView.rectForRowAtIndexPath(indexPath)    document.presentOpenInMenuFromRect(rect, inView: self.tableView, animated: true)  }

        五、刪除視頻

 func delete(file: File, indexPath: NSIndexPath) {    do {      try fileManager.removeItemAtPath(file.path)      videos.removeAtIndex(indexPath.row)      tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)    } catch {          }  }

        六、保存到相冊

 func saveToCameraRoll(file: File, indexPath: NSIndexPath) {    if UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(file.path) {      UISaveVideoAtPathToSavedPhotosAlbum(file.path, self, "image:didFinishSavingWithError:contextInfo:", nil)    } else {      // save faild    }  }    func image(image: UIImage, didFinishSavingWithError error: NSErrorPointer, contextInfo:UnsafePointer<Void>) {    if error == nil {      // save success    } else {      // save faild    }  }

 代碼說明:

      注意 UISaveVideoAtPathToSavedPhotosAlbum 的用法,后面 Selector 寫得不對就會報錯。

以上就是IOS 8 共享文件的實例代碼,有需要的朋友可以參考下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人巨大精品欧美一区二区免费| 日韩成人免费视频| 色噜噜久久综合伊人一本| 中文字幕日韩在线视频| 欧美日韩国产综合视频在线观看中文| 欧美大片va欧美在线播放| 国产一区二区三区高清在线观看| 久久成人精品一区二区三区| 国产午夜精品久久久| 久久久成人的性感天堂| 俺也去精品视频在线观看| 在线日韩av观看| 国产一区二区三区在线播放免费观看| 永久免费精品影视网站| 最近免费中文字幕视频2019| 欧美电影免费观看大全| 91久久久久久久久久久久久| 欧美国产视频日韩| 91亚洲一区精品| 亚洲18私人小影院| 国产精品丝袜白浆摸在线| 欧美精品久久久久久久免费观看| 97在线视频国产| 中国人与牲禽动交精品| 国产69精品久久久久9999| 成人春色激情网| 91欧美精品午夜性色福利在线| 亚洲伊人一本大道中文字幕| 国内精品视频久久| 一区二区三区久久精品| 6080yy精品一区二区三区| 精品国偷自产在线| 国产在线观看精品一区二区三区| 欧美性少妇18aaaa视频| 亚洲色图av在线| 在线观看精品国产视频| 在线国产精品视频| 国模精品视频一区二区| 91日本视频在线| 91黄色8090| 国产精品高精视频免费| 正在播放欧美视频| 亚洲三级免费看| 91伊人影院在线播放| 91sao在线观看国产| 青青草精品毛片| 国产精品揄拍500视频| 最新国产成人av网站网址麻豆| 国产日韩欧美影视| 欧美电影免费观看大全| 夜夜嗨av一区二区三区四区| 亚洲人成电影在线| 欧美性在线观看| 日韩亚洲精品电影| 亚洲成年人影院在线| 欧美成人在线免费| 国产精品白丝jk喷水视频一区| 亚洲精品成人网| 亚洲大胆人体视频| 国产美女高潮久久白浆| 久久夜色精品亚洲噜噜国产mv| 国产婷婷成人久久av免费高清| 最近免费中文字幕视频2019| 久久国产精品久久久久久久久久| 欧美日本高清视频| 亚洲日本成人网| 日韩亚洲综合在线| 亚洲三级黄色在线观看| 中文字幕久久久| 亚洲女人天堂成人av在线| 97精品久久久中文字幕免费| 国产日韩在线视频| 亚洲精品国精品久久99热一| 亚洲欧美制服另类日韩| 欧美激情亚洲另类| 国产精品国产福利国产秒拍| 日韩经典中文字幕在线观看| 亚洲精品乱码久久久久久金桔影视| 欧美日韩在线视频一区二区| 久久精品国产综合| 97视频免费观看| 97在线看福利| 性亚洲最疯狂xxxx高清| 成人国产精品久久久久久亚洲| 日韩视频―中文字幕| 国自在线精品视频| 亚洲欧美精品在线| 久久久久久久一| 国产在线观看不卡| 日韩欧美一区二区三区久久| 国产色婷婷国产综合在线理论片a| 亚洲午夜未满十八勿入免费观看全集| 国产日本欧美一区二区三区| 日韩精品在线看| 久久偷看各类女兵18女厕嘘嘘| 国产精品久久视频| 精品国产乱码久久久久久婷婷| 日韩国产精品一区| 国产成人精品免费视频| 7777kkkk成人观看| 国产免费观看久久黄| 91国产美女视频| 国产日韩欧美综合| 亚州欧美日韩中文视频| 午夜精品久久久久久99热软件| 国产成人综合av| 韩国精品美女www爽爽爽视频| 久久精品在线视频| 亚洲国产中文字幕久久网| 91精品国产精品| 欧美性高潮床叫视频| 日韩欧美精品网站| 97免费视频在线播放| 国产精品视频男人的天堂| 最近2019中文字幕大全第二页| 日本不卡视频在线播放| 亚洲一二在线观看| 欧美精品一区二区三区国产精品| 亚洲在线观看视频网站| 国产亚洲成av人片在线观看桃| 中文字幕日韩av| 国产精品香蕉国产| 亚洲美女中文字幕| 操人视频在线观看欧美| 精品久久久在线观看| 亚洲欧美中文日韩在线| 久久精品成人欧美大片古装| 日韩欧美福利视频| 国产视频久久久久| 亚洲香蕉av在线一区二区三区| 精品国产拍在线观看| 中文字幕亚洲情99在线| 日韩精品视频在线播放| 欧美日在线观看| 久久九九全国免费精品观看| 久热精品视频在线免费观看| 国产精品高潮在线| 久国内精品在线| 国产69精品久久久久99| 91色视频在线观看| 国产网站欧美日韩免费精品在线观看| 亚洲欧美国产精品va在线观看| 国产精品久久久久一区二区| 国产精品观看在线亚洲人成网| 亚洲欧美国产精品va在线观看| 亚洲免费高清视频| 96pao国产成视频永久免费| 中文字幕久精品免费视频| 亚洲色图18p| 欧美日韩国产限制| 色一情一乱一区二区| 国产精品一区二区久久国产| 亚洲色在线视频| 国产福利成人在线| 国产乱人伦真实精品视频| 亚洲美女自拍视频| 亚洲日本欧美中文幕| 国产精品一久久香蕉国产线看观看| 亚洲黄色www网站| 日韩乱码在线视频| 国产精品三级在线| 国产精品第二页| 国产精品久久久久国产a级| 成人www视频在线观看|