iOS开发:iPhone设备图片、音乐、视频获取实践

本文介绍了在iOS开发中获取iPhone设备的图片、音乐和视频的详细步骤,包括请求用户授权、遍历相册和iTunes资料库、展示资源以及处理相机拍照图片的方向问题。开发环境为Xcode10,文中提供了相应的代码示例和解决拍照图片旋转问题的策略。
摘要由CSDN通过智能技术生成

背景介绍

出于项目需求,需要基于iphone设备内图片及音乐、视频资源完成一些功能。功能包括以几点:1.需要在APP内获得并处理iphone设备内的图片、音频和视频;2.在APP内嵌入拍照入口,可以拍照并展示图片。
开发过程是学习的过程也是解决问题的过程,因此笔者对开发过程中涉及到的iphone设备内图片、音视频获取以及拍照过程中遇到的图片方向问题进行了整理和分析。

开发环境:Xcode10

一、获取本地图片、音乐、视频

iphone设备内相册存储了所有的图片和通过相机拍摄的视频,itunes的资料库存储了所有的音乐和部分视频。
头文件引用:

#import <Photos/Photos.h>
遍历相册,获取相册内的图片和视频

app若想要访问相册,需要获得用户的授权。开发时,要在info.plist文件内添加以下内容,这样在app启动后,系统会提示用户是否授权访问相关资源:

        <key>NSPhotoLibraryAddUsageDescription</key>
	<string>需要访问相册,用于保存图片</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>如果不允许,您将无法在XXX中使用系统相册</string>

访问相册前,需要判断APP是否具有访问相册权限的权限:

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
        //status == PHAuthorizationStatusDenied 用户已经明确否认了权限的访问
        //status == PHAuthorizationStatusRestricted 此应用程序没有被授权访问的照片数据
        //status == PHAuthorizationStatusNotDetermined 用户尚未做出选择这个应用程序的问候
        //status == PHAuthorizationStatusAuthorized 用户已经授权应用访问照片数据
    }];

获取权限后,便可以访问相册内所有系统相册及用户自定义相册,photos提供的相册种类很多,如下所示:

typedef NS_ENUM(NSInteger, PHAssetCollectionType) {
    PHAssetCollectionTypeAlbum      = 1,
    PHAssetCollectionTypeSmartAlbum = 2,
    PHAssetCollectionTypeMoment     = 3,
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(8_0, 10_0);

typedef NS_ENUM(NSInteger, PHAssetCollectionSubtype) {
    
    // PHAssetCollectionTypeAlbum regular subtypes
    PHAssetCollectionSubtypeAlbumRegular         = 2,
    PHAssetCollectionSubtypeAlbumSyncedEvent     = 3,
    PHAssetCollectionSubtypeAlbumSyncedFaces     = 4,
    PHAssetCollectionSubtypeAlbumSyncedAlbum     = 5,
    PHAssetCollectionSubtypeAlbumImported        = 6,
    
    // PHAssetCollectionTypeAlbum shared subtypes
    PHAssetCollectionSubtypeAlbumMyPhotoStream   = 100,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值