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实例相对应

AVPlayer 视频播放的更多相关文章

  1. iOS AVPlayer视频播放器

    代码地址如下:http://www.demodashi.com/demo/11168.html 一.运行效果 二.实现过程 ①.创建播放器avPlayer //创建播放器 url = [url str ...

  2. iOS 10 系统 AVPlayer视频播放不了问题解决

    使用[AVAudioPlayer Play]时出现了异常... 由于xcode中设置了当所有异常出现时的断点,,解决办法是将all改为Objective-C: libc++abi.dylib`__cx ...

  3. iOS - 视频循环播放

    录制完视频后,我们想在录制视频的预览层上无限循环播放我们的小视频,是不是很炫酷,这时候我们就有三中选择了:1.MPMoviePlayerController2.AVPlayer3.AVAssetRea ...

  4. iOS学习笔记26-视频播放

    一.视频 在iOS中播放视频可以使用两个框架来实现: MediaPlayer框架的MPMoviePlayerController和MPMoviePlayerViewController AVFound ...

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

    lookingstars/JZVideoDemo  视频播放器 Updated on 11 Aug Objective-C 15 10 caoguoqing/VideoEditDemo  iOS vi ...

  6. iOS:基于AVPlayer实现的视频播放器

    最近在学习AVFoundation框架的相关知识,写了一个基于AVPlayer的视频播放器,相关功能如下图: 代码github:https://github.com/wzpziyi1/VideoPla ...

  7. iOS - AVPlayer 音视频播放

    前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class ...

  8. iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)

    介绍: 和音频播放一样,ios也提供个很多的API.如mediaPlayer.framework下的MPMediaPlayerController.AVFounditon.framework下的AVP ...

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

    ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:ht ...

随机推荐

  1. Nginx + Tomcat + Session

    分别下载 tomcat http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.tar.gz n ...

  2. careercup-C和C++ 13.8

    13.8 编写一个智能指针类.智能指针是一种数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制.它会自动记录SmartPointer<T*>对象的引用计数,一旦T类型对象的 ...

  3. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  4. C#_delegate - 值参数和引用参数

    值参数不能加,引用参数可以. 引用参数是共享的 using System; using System.Collections.Generic; using System.Linq; using Sys ...

  5. oracle数据库中,分天查询数目

    select to_CHAR(SP_MT_TIME,'DD'),count(*) from table2 group by to_CHAR(SP_MT_TIME,'DD');

  6. Android(java)学习笔记119:继承中父类没有无参构造

    /* 如果父类没有无参构造方法,那么子类的构造方法会出现什么现象呢? 报错. 如何解决呢? A:在父类中加一个无参构造方法 B:通过使用super关键字去显示的调用父类的带参构造方法 C:子类通过th ...

  7. 关于Collections中的sort()方法总结

    用Java集合中的Collections.sort方法对list排序的两种方法 本文部分引用自:http://my.oschina.net/leoson/blog/131904 用Collection ...

  8. PageView

        auto pageview = PageView::create();     pageview->setContentSize(Size(480.0f, 320.0f));     p ...

  9. 阿里云 mysql 无缘无故挂掉

    近期在登录自己博客时,老是报数据库连接失败,然后重启服务器就好了.但是,重启服务器很耗时间,不方便,不能每次都重启吧于是远程连接服务器看了一下原来是数据库服务挂掉了启动时还报错于是查看了下错误日志 2 ...

  10. Ubuntu Update-rc.d命令详细介绍

    http://www.jb51.net/os/Ubuntu/182768.html Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本.这些脚本的链接位于/etc ...