swift 从手机选照片_Swift - 从相册中选择视频(过滤掉照片,使用UIImagePickerController)...

(本文代码已升级至Swift4)

有时我们需要从系统相册中选择视频录像,来进行编辑或者上传操作,这时使用 UIImagePickerController 就可以实现。

默认情况下,UIImagePickerController 打开系统“照片”后允许用户选择所有的媒体文件(不管是照片还是录像),我们可以通过 mediaTypes 属性设置。让其只显示视频录像。

1,样例说明

(1)下面样例点击“选择视频”按钮后,会自动打开相册选择视频。

(2)由于设置了 mediaTypes,所有的图片都会过滤掉,只留下视频选择。

(3)选择完毕,系统会自动将视频复制一个到应用的 tmp 文件夹(临时文件夹)下。我们可以直接对这个文件进行操作,而不会影响到系统相册中的原视频。

(4)本样例选择后,就直接使用 AVPlayerViewController 进行播放。

2,效果图

 

 

可以看到选择后,视频会被复制到 tmp 目录下:

选择完毕后自动播放该视频:

3,样例代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

import UIKit

import MobileCoreServices

import AssetsLibrary

import AVKit

import AVFoundation

class ViewController: UIViewController,  UIImagePickerControllerDelegate,

UINavigationControllerDelegate{

override func viewDidLoad() {

super.viewDidLoad()

//创建一个ContactAdd类型的按钮

let button:UIButton = UIButton(type:.system)

button.frame = CGRect(x:10, y:150, width:100, height:30)

button.setTitle("选择视频", for:.normal)

button.addTarget(self, action:#selector(selectVideo), for:.touchUpInside)

self.view.addSubview(button)

}

//选择视频

@objc func selectVideo() {

if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {

//初始化图片控制器

let imagePicker = UIImagePickerController()

//设置代理

imagePicker.delegate = self

//指定图片控制器类型

imagePicker.sourceType = .photoLibrary

//只显示视频类型的文件

imagePicker.mediaTypes = [kUTTypeMovie as String]

//不需要编辑

imagePicker.allowsEditing = false

//弹出控制器,显示界面

self.present(imagePicker, animated: true, completion: nil)

}

else {

print("读取相册错误")

}

}

//选择视频成功后代理

func imagePickerController(_ picker: UIImagePickerController,

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值