iOS之AVPlayer的简单应用

导入头文件

#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>

声明播放控件属性

@property (nonatomic, strong)AVPlayer *player;

声明滑动条

@property (nonatomic, strong)UISlider *slider;

声明播放的总时间长

@property (nonatomic,assign)CGFloat sumPlayOperation;

//设置播放的url
    NSURL *url = [NSURL URLWithString:@"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4"];
  //设置播放的项目
      AVPlayerItem *item = [[AVPlayerItem alloc]initWithURL:url];
//初始化player对象
self.player = [[AVPlayer alloc]initWithPlayerItem:item];
 //设置播放页面
 //在开发中,单纯使用AVPlayer类是无法显示视频的,要将视频层添加至AVPlayerLayer中,这样才能将视频显示出来 所以设置AVPlayerLayer播放页面
AVPlayerLayer *layout = [AVPlayerLayer playerLayerWithPlayer:_player];
 layout.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 300);
      layout.backgroundColor = [UIColor cyanColor].CGColor;
    //设置播放窗口和当前视图之间的比例显示内容
      layout.videoGravity = AVLayerVideoGravityResizeAspect;
 [self.view.layer addSublayer:layout];
      self.player.volume = 1.0f;
//代码块
      [self.playView play:^(UIButton *play) {
            [self.player play];
      } pause:^(UIButton *pause) {
            [self.player pause];
      } last:^(UIButton *last) {
            NSLog(@"上一首");
      } next:^(UIButton *next) {
            NSLog(@"下一首");
      }];
//创建slider
_slider = [[UISlider alloc]initWithFrame:CGRectMake(self.view.center.x - 100, 280, 200, 30)];
      [self.view addSubview:_slider];
      _slider.value = 0.0f;
      [_slider addTarget:self action:@selector(handleSlider:) forControlEvents:UIControlEventTouchUpInside];

//改变进度
- (void)handleSlider:(UISlider *)slider {
      self.sumPlayOperation = self.player.currentItem.duration.value / self.player.currentItem.duration.timescale;
      //CMTimeMake(a,b) a表示当前时间,b表示每秒钟有多少帧
      [self.player seekToTime:CMTimeMakeWithSeconds(self.slider.value * self.sumPlayOperation, self.player.currentItem.duration.timescale) completionHandler:^(BOOL finished) {
            [self.player play];
      }];
}

大致这样


QQ20160820-0.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,665评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 1这样修改后,这两人的电话号码都变化了,原因:information是同一个对象 解决办法:创建两个informa...
    rebeccaBull阅读 633评论 0 0
  • 微信小程序自我小总结 微信小程序是一个介于原生app和H5之间的一个东东。不过微信小程序是依赖微信开发平台的,甚至...
    落雨飞尘阅读 986评论 0 3
  • 等待,是个漫长的过程,过程中充满着痛苦难受,不过我还是满怀欣喜的等待着每一个时刻。 等待着亲爱的你,来我的身边,看...
    帅气的小娥阅读 219评论 0 0