AVPlayer 视频播放

1. AVPlayer

AVPlayer 是一个用来播放基于时间的视听媒体的控制器对象(一个队播放和资源时间相隔信息进行管理的对象,而非一个视图或窗口控制器).

AVPlayer支持播放从本地, 分步下载或通过HTTP Live Streaming协议得到的流媒体, 并在多种播放场景中播放这些视频资源.

开发者通过AVPlayer框架提供的应用程序接口来开发控制播放基于时间的媒体的用户界面.

AVPlayer只管理一个单独资源的播放, 但是框架还体用了AVPlayer的一个子类AVQueuePlayer, 通过它可以

AVPlayer是一个不可见组件,对于播放MP3, ACC等音频文件, 没有可视化界面不会有什么问题, 但是对于想MP4等视频类文件就会给用户非常差的体验, 而要将视频资源导出到用户界面的目标位置, 需要使用AVPlayerLayer类.

2. AVPlayer

AVPlayerLayer构建于Core Animation之上(AVPlayerLayer扩展了Core Animation的CALayer), 是AV Foundation中能找到的位数不多的可视化组件.

Core Animation是Mac和iOS平台上赋值图形渲染与动画的基础框架,主要用于这些平台资源的美化和动画流畅度提升.

Core Animation 本身具有基于时间的属性, 并且由于他基于OpenGL, 所以具有很好的性能, 能非常好的瞒住AVFoundation的各种需求.

AVPlayerLayer是一个相对简单的类, 使用起来也比较简单. 在这层中开发者可以自定义的只有一个属性: videoGravity

video gravity 总共有三个不同的值:

    AVLayerVideoGravityResizeAspect:  会在承载层的范围内缩放视频大小来保存视频的原始宽高比例,最常用

    AVLayerVideoGravityAspectFill: 保留视频的宽高比,并使其通过缩放填满层的范围区域,通常会导致视频图片被部分裁剪

    AVLayerVideoGravityResize:  会将视频内容拉伸来匹配承载层的范围.这是最不常用的模式, 因为它通常会导致图片扭曲

                   而导致的funhouse effect效应 

 

3. AVPlayerItem

视频的播放就是使用AVPlayer来播放AVAsset.

通过AVAsset 可以找到一些用来过去数据的方法和属性,(如创建日期, 元数据, 时长等信息). 但无法获取当前时间,也不饿能够在媒体中查找特定位置.这是因为AVAsset模型只包含媒体资源的静态信息, 这些不变的属性用来描述对象的静态状态. 这意味着仅使用AVAsset对象是无法实现播放功能的.

当我们需要对一个资源及其相关曲目进行播放时, 首先需要通过AVPlayerItemTrack和 AVPlayerItemTrack类构建相应的动态内容.

AVPlayerItem会建立媒体资源动态视角的数据模型,并保存AVPlayer在播放资源时的呈现状态

AVPlayerItem由一个或多个媒体曲目组成, 由AVPlayerItemTrack类建立模型

AVPlayerItemTrack实例用于表示播放器条目中的类型同一的媒体流,比如音频或视频

AVPlayerItem中的曲目直接与基础AVAsset中的AVAssetTrack实例相对应

时间: 2024-08-27 14:22:28

AVPlayer 视频播放的相关文章

ios avplayer 视频播放器

#import <UIKit/UIKit.h> @interface XGGesTuresView : UIView //左下角播放按钮 @property (nonatomic ,strong)UIButton                * leftplayerbutton; //最小时间 @property (nonatomic ,strong)UILabel                 * mintimelable; //滑动条 @property (nonatomic ,str

iOS总结

1.设置UILabel行间距 NSMutableAttributedString* attrString = [[NSMutableAttributedString  alloc] initWithString:label.text];     NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];     [style setLineSpacing:20];     [attrString addAttr

github视频录制播放相关功能-参考

lookingstars/JZVideoDemo  视频播放器 Updated on 11 Aug Objective-C 15 10 caoguoqing/VideoEditDemo  iOS video cut ,also can add blackgroundmusic iOS 视频剪辑,视频添加背景音乐 Updated on 13 Jun 2014 Objective-C 139 50 835239104/KrVideoPlayerPlus  根据36Kr开源的KRVideoPlayer

iOS学习笔记26-视频播放

一.视频 在iOS中播放视频可以使用两个框架来实现: MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewController AVFoundation框架中的AVPlayer AVKit框架的AVPlayerViewController[iOS8之后才有] 但在近两年的WWDC上,MediaPlayer框架被iOS9标记为deprcated,意味着它已经不再被苹果继续维护,而且该框架集成度较高,不如AVFoundation灵活性高,所以

iOS开发经验总结

1.设置UILabel行间距 NSMutableAttributedString* attrString = [[NSMutableAttributedString alloc] initWithString:label.text]; NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; [style setLineSpacing:20]; [attrString addAttribute:NSParag

iOS - 视频循环播放

录制完视频后,我们想在录制视频的预览层上无限循环播放我们的小视频,是不是很炫酷,这时候我们就有三中选择了:1.MPMoviePlayerController2.AVPlayer3.AVAssetReader+AVAssetReaderTrackOutput 但是我们这个预览层是自定义的喔,所以MPMoviePlayerController只能马上给筛选掉了,所以用,那么我们就要用到 AVPlayer 了,虽然上 AVPlayer 最多只能创建16个,性能上不及用 AVAssetReader+AV

iOS - AVPlayer 音视频播放

iOS - AVPlayer 音视频播放 本文目录 前言 1.本地/网络音视频播放 2.本地/网络音视频播放设置 3.AVPlayerViewControllerDelegate 画中画协议方法 回到顶部 前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class AVPlayer : NSObject NS_CLASS_AVAILABLE_IOS(8_0)

AVPlayer封装的带缓存的视频播放器

使用AVPlayer封装实现了本地视频播放,以及边下边播在线视频,缓存完成后将视频保存在本地文件夹中,下次播放时直接从本地播放.并且实现了左右滑动快进快退视频.上下滑动调整音量,以及全屏功能. HcdCachePlayer 带缓存的播放器,使用AVPlayer封装开发. 简单介绍 HcdCacheVideoPlayer实现了边下边播在线视频,并且能将在线视频缓存在本地,支持左右滑动手势来调整视频播放进度,上下滑动手势调节音量大小,并且支持全屏播放.此控件使用了Masonry自动布局来实现全屏播放

ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:https://github.com/niexiaobo/ 实现功能 :播放视频 ,视频后台下载 (真机调试功能正常) 1.使用ZFPlayer播放视频(可以在线和本地播放,基于AVPlayer,调节音量和屏幕亮度) 2.使用 WHCNetWorkKit 实现下载,后台下载(多任务同时下载,单任务下载,