网站大量收购独家精品文档,联系QQ:2885784924

移动应用软件开发综合实训(基于iOS平台)-2017 使用AVPlayer播放网络音乐和视频 AVPlayer 本地、网络视频播放相关.docx

移动应用软件开发综合实训(基于iOS平台)-2017 使用AVPlayer播放网络音乐和视频 AVPlayer 本地、网络视频播放相关.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVPlayer 本地、网络视频播放相关 iOS开发常用的两种视频播放方式,一种是使用MPMoviePlayerController,还有就是使用AVPlayer。MPMoviePlayerController系统高度封装使用起来很方便,但是如果要高度自定义播放器就比较麻烦。而AVPlayer则恰好相反,灵活性更强,使用起来也麻烦一点。本文将对AVPlayer的使用做个简单的介绍。 1、AVPlayer加载播放视频 AVPlayer继承NSObject,所以单独使用AVPlayer时无法显示视频的,必须将视频图层添加到AVPlayerLayer中方能显示视频。使用AVPlayer首先了解一下几个常用的类: AVAsset:AVAsset类专门用于获取多媒体的相关信息,包括获取多媒体的画面、声音等信息。 AVURLAsset:AVAsset的子类,可以根据一个URL路径创建一个包含媒体信息的AVURLAsset对象。 AVPlayerItem:一个媒体资源管理对象,管理者视频的一些基本信息和状态,一个AVPlayerItem对应着一个视频资源。 AVPlayer加载视频的代码如下: AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@/tieba-smallvideo/11772_3c435014fb2dd9a5fd56a57cc369f6a0.mp4]]; //添加监听 [playerItem addObserver:self forKeyPath:@loadedTimeRanges options:NSKeyValueObservingOptionNew context:nil]; [playerItem addObserver:self forKeyPath:@status options:NSKeyValueObservingOptionNew context:nil]; self.avPlayer = [AVPlayer playerWithPlayerItem:playerItem]; AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.avPlayer]; //设置模式 playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; playerLayer.contentsScale = [UIScreen mainScreen].scale; playerLayer.frame = CGRectMake(0, 100, self.view.bounds.size.width, 200); [self.view.layer addSublayer:playerLayer]; //监听回调 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionaryNSString *,id *)change context:(void *)context { AVPlayerItem *playerItem = (AVPlayerItem *)object; if ([keyPath isEqualToString:@loadedTimeRanges]){ }else if ([keyPath isEqualToString:@status]){ if (playerItem.status == AVPlayerItemStatusReadyToPlay){ NSLog(@playerItem is ready); [self.avPlayer play]; } else{ NSLog(@load break); } } } 此处代码中添加了对AVPlayerItem的loadedTimeRanges和status属性监听,status枚举值有 AVPlayerItemStatusUnknown,AVPlayerItemStatusReadyToPlay, AVPlayerItemStatusFailed。只有当status为AVPlayerItemStatusReadyToPl

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档