赞
踩
AVPlayer *player = [[AVPlayer alloc] init];
AVPlayerLayer
//创建AVPlayerLayer AVPlayerLayer * playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; //frame playerLayer.frame = self.bounds; /** videoGravity //视频播放时的拉伸方式 param: AVLayerVideoGravityResizeAspect //等比例填充,直到一个维度到达区域边界。部分机型有黑边 AVLayerVideoGravityResizeAspectFill //等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 AVLayerVideoGravityResize //非均匀模式。两个维度完全填充至整个视图区域。会变形 */ playerLayer.videoGravity = AVLayerVideoGravityResizeAspect; //去除黑边 //使playerLayer光栅化(即位图化),关闭了图层的blending(混合)。 playerLayer.shouldRasterize = YES; //显式指定光栅化的范围,这样能保证视频的显示质量,不然容易出现视频质量显示不佳。 playerLayer.rasterizationScale = [UIScreen mainScreen].scale; //在view的layer上添加layer [self.layer addSublayer:_playerLayer];
AVPlayerItem
加载视频资源该类主要是用于管理资源对象,提供播放数据源,旨在表示由AVPlayer播放的资源的呈现状态,并允许观察该状态,它控制着视频从创建到销毁的诸多状态。
//方式一
//通过设备相册里面的内容 创建一个要播放的对象
AVURLAsset *urlAsset = [[AVURLAsset alloc] initWithURL: urlStr options: nil];
[[urlAsset resourceLoader] setDelegate: self queue: dispatch_get_main_queue()];
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:urlAsset];
//方式二
//类方法通过URl地址创建要播放的对象 可以是本地内容也可以是在线内容
AVPlayerItem *item = [AVPlayerItem playerItemWithURL:mediaUrl];
//切换视频资源
[player replaceCurrentItemWithPlayerItem:item];
play
//播放pause
//暂停seekToTime
: //跳转进度currentItem
// 当前播放的视频元素volume
//调节音量externalPlaybackVideoGravity
//视频显示的播放样式currentTime
获得当前播放时间 -> CMTimeCMTimeGetSeconds(<#CMTime time#>) 通过CMTime获得当前播放时间(秒)
//通过KVO来观察status属性的变化,来获得播放之前的错误信息 [_player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil]; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context { if ([keyPath isEqualToString:@"status"]) { AVPlayerStatus status = [change[NSKeyValueChangeNewKey] intValue]; switch (status) { case AVPlayerStatusFailed: { NSLog(@"url有误"); } break; case AVPlayerStatusReadyToPlay: { NSLog(@"准备好播放了"); } break; case AVPlayerStatusUnknown: { NSLog(@"视频资源出现未知错误"); } break; default: break; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。