这是我参与「第四届青训营 」笔记创作活动的的第15天,今天是8月20日,今天学习iOS多媒体技术,并整理了相关知识笔记。
相册权限
工程配置
在info.plist 中添加对应的提示文案。用于提示用户开启权限。
权限状态
typedef NS_ENUM(NSInteger, PHAuthorizationStatus) {
// 暂未获取权限
PHAuthorizationStatusNotDetermined = 0,
// 受限状态,没有授权访问相册,用户也无法修改状态(例如家长模式下)
PHAuthorizationStatusRestricted,
// 用户拒绝了相册授权
PHAuthorizationStatusDenied,
// 用户同意了相册授权
PHAuthorizationStatusAuthorized,
// 受限的相册访问,用户会选择部分程序可以访问的相册数据
PHAuthorizationStatusLimited API_AVAILABLE(ios(14)),
};
相册加载
系统相册选择器:ALAssetsLibrary(废弃)、UIImagePickerController(软废弃)、PHPickerViewController
权限控制
PHPickerViewController
自定义选择器
1.不主动选择权限:
需要重新进入才能获取到数据。在另一个进程弹出权限请求弹窗
2.主动选择权限: 可以控制一定选择过权限类型后,再加载数据。
视频播放
初始化
1.通过 URL 创建AVPlayerItem(多媒体数据的管理器)供播放器使用。
2.播放时长监听
3.加载状态监听(方便出错时可以进行错误处理)
4.播放速率监听(播放和暂停都相当于设置 rate 值。)
5.播放进度监听(定时更新进度条)
播放控制
点击播放暂停,调用 play/pause、拖拽进度条
画中画模式
需要先判断设备是否支持,监听 pictureInPicturePossible 是否更新状态,更新后可尝试触发画中画效果,监听应用进入活跃状态。(从主屏幕返回时,停止画中画模式)
总结
今天学习了如何进行响彻的权限控制和视屏的播放设置