日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Swift教程-视频拍摄教程

發布時間:2024/3/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift教程-视频拍摄教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:Take Video Tutorial in iOS8 with Swift
原文日期:2015/07/09

譯者:lfb_CD
校對:numbbbbb
定稿:shanks

蘋果公司提供了UIimagePickerController-這是一個使用 iOS 設備內置的攝像頭來拍攝視頻的可視化界面。在此教程中,我們將拍攝一段保存到手機相冊的視頻。教程運行在 iOS 8.4 和 Xcode 6.4 下。

打開 Xcode 并創建一個new Single View Application,項目名稱為IOS8SwiftTakeVideoPlayerTutorial,接著填上你的Organization Name和Organization Identifier,選擇 Swift 語言,在設備一欄只選擇 iPhone。


打開Storyboard,然后在主視圖中拖入兩個按鈕,并分別設置兩個button的title為Take Video和View Library。之后你的故事板內容應該像下面這樣:


按住?Control鍵 并選中兩個按鈕,點擊故事板右下角的Resolve Auto Layout Issues按鈕(就是右下角那個三角形按鈕),選擇Add Missing Constraints


打開Assistant Editor(關聯面板),并確保ViewController.swift文件是打開著的。按住?Control鍵,把第一個按鈕拖出到ViewController.swift文件中,并創建下面的Action


按住?Control鍵,把第二個按鈕拖出到ViewController.swift文件,并創建下面的Action


打開ViewController.swfit文件,并在文件頂部添加下面代碼:

import MobileCoreServices import AssetsLibrary

修改ViewController類的聲明:

class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {

ViewController類中需要實現UIImagePickerController的代理方法。實現takeVideo方法:

@IBAction func takeVideo(sender: AnyObject) {// 1 Check if project runs on a device with camera availableif UIImagePickerController.isSourceTypeAvailable(.Camera) {// 2 Present UIImagePickerController to take videocontroller.sourceType = .Cameracontroller.mediaTypes = [kUTTypeMovie as! String]controller.delegate = selfcontroller.videoMaximumDuration = 10.0presentViewController(controller, animated: true, completion: nil)}else {println("Camera is not available")} }
  • isSourceTypeAvailable用來檢測設備是否支持拍攝視頻。
  • ImagePickerController的數據可以是Camera或Movie(圖片和視頻)兩種類型。視頻的maximum(拍攝視頻的最長時間)長度設置為10秒。
  • 實現?viewLibrary方法:

    @IBAction func viewLibrary(sender: AnyObject) {// Display Photo Librarycontroller.sourceType = UIImagePickerControllerSourceType.PhotoLibrarycontroller.mediaTypes = [kUTTypeMovie as! String]controller.delegate = self presentViewController(controller, animated: true, completion: nil)}

    點擊按鈕就會打開相冊。如果mediaType沒有被設置為視頻類型,那么視頻文件就不會顯示,只會顯示圖片資源。下面實現UIImagePickerControllerDelegate:

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject: AnyObject]) {// 1 let mediaType:AnyObject? = info[UIImagePickerControllerMediaType]if let type:AnyObject = mediaType {if type is String {let stringType = type as! Stringif stringType == kUTTypeMovie as! String {let urlOfVideo = info[UIImagePickerControllerMediaURL] as? NSURLif let url = urlOfVideo {// 2 assetsLibrary.writeVideoAtPathToSavedPhotosAlbum(url,completionBlock: {(url: NSURL!, error: NSError!) inif let theError = error{println("Error saving video = \(theError)")}else {println("no errors happened")}})}} }}// 3picker.dismissViewControllerAnimated(true, completion: nil) }

    imagePickerController(_:didFinishPickingMediaWithInfo:)方法告訴代理,用戶選擇了一段視頻。info參數包含了選中的視頻的URL數據

  • 字典數據類型的info的mediatype參數可用于檢測參數是否是movie類型。如果是就提取視頻的URL
  • writeVideoAtPathToSavedPhotosAlbum方法會把視頻保存到手機相冊中
  • 讓ViewController視圖消失
  • 實現imagePickerControllerDidCancel方法:

    func imagePickerControllerDidCancel(picker: UIImagePickerController) {picker.dismissViewControllerAnimated(true, completion: nil) }

    當用戶點擊Cancel按鈕時,View Controller視圖就會消失掉。如果模擬器沒有視頻文件,請在真實的設備上編譯并運行這個項目。選擇”Take Video“拍攝一段視頻并選擇”Use Video“,接著選擇”View Library“,視頻就會保存到手機相冊中了。


    你可以在Github上下載IOS8SwiftTakeVideoPlayerTutorial的代碼

    總結

    以上是生活随笔為你收集整理的Swift教程-视频拍摄教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。