iOS - 视频播放

视频

1、介绍

(0)ios9之后的改变弃用了:MPMoviePlayerViewController(框架:MediaPlayer)

新加入了:AVPlayerViewController(框架:AVFoundation #import

(1)AVPlayer用来播放音视频可以单独使用(必须与AVPlayerLayer配合使用)也可以直接使用AVPlayerViewControl

(2)AVPlayerItem音视频里面播放的对象

(3)AVPlayerLayer播放显示视频的图层界面(图层比起view不能添加响应事件)

(4)AVPlayerViewController视图控制器可以显示视频,并且调节控件

2、使用

(1)AVPlayer直接播放:AVPlayer(视频播放器)去播放->AVPlayerItem(视频播放的元素)->AVPlayerLayer(展示播放的视图)

步骤:

《1》创建AVPlayerItem视频内容相关

<1>playerItemWithURL:类方法通过URL地址创建要播放的对象(可以是本地、也可以在线)

<2>initWithURL:构造方法

<3>playerItemWithAsset:通过设备相册里面的内容创建一个要播放的对象

<4>playerItemWithAsset:automaticallyLoadedAssetKeys自动根据要求的Key去加载相册里面的内容

<5>initWithAsset:

automaticallyLoadedAssetKeys:构造方法

<6>duration总时长

<7>status加载状态

①、AVPlayerItemStatusUnknown未知状态

②、AVPlayerItemStatusReadyToPlay准备播放状态

③、AVPlayerItemStatusFailed失败状态

<8>时间控制的类目

①、currentTime获得当前播放时间

②、forwardPlaybackEndTime跳到结束位置

③、reversePlaybackEndTime跳到开始位置

④、seekToTime:跳到指定位置

<9>

《2》创建AVPlayer视频操作相关

<1>playerWithURL:根据URL去创建播放器不需使用item

<2>initWithURL:

<3>playerWithPlayerItem:需要传入一个视频播放内容

<4>initWithPlayerItem:

<5>play播放

<6>pause暂停

<7>seekToTime跳转到某一个进度(拖动快进、回退)

<8>currentItem当前播放的视频元素

<9>volume调节音量

<10>externalPlaybackVideoGravity视频显示的播放样式

①、AVLayerVideoGravityResizeAspect普通的

②、AVLayerVideoGravityResizeAspectFill充满的

<11>currentTime当前播放时间(CMTime类型) CMTimeGetSeconds()通过CMTime获得当前播放时间单位是秒

《3》创建AVPlayerLayer添加到父视图

<1>playerLayerWithPlayer:->类方法根据播放器去创建一个可以显示视频的图层

<2>设置位置frame没有动画

<3>视频图层添加到父图层:[self.view.layer

addSublayer:layer];

《4》播放**播放器:[player play];

<1>获得播放结束的状态获得总时长->通过发送通知的形式获得-> AVPlayerItemDidPlayToEndTimeNotification

[[NSNotificationCenter defaultCenter]addObserver:selfselector:@selector(itemDidPlayToEndTimeNotification:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil];

<2>CMTime

->视频播放进度value  timescale

CMTimeMake(<#int64_t value#>, <#int32_t timescale#>)

<3>kCMTimeZero初始进度

<4>seekToTime:跳转到某一个进度

(2)控制器播放#import

《1》AVPlayer

《2》AVPlayerViewController创建视频播放视图的控制器

你可能感兴趣的:(iOS - 视频播放)