iOS开发--视频播放

作者: 一个有个性的女汉子 | 来源:发表于2016-12-15 18:06 被阅读422次

    很多app中都有视频播放的功能,今天做了一个视频播放,基于AVPlayer,支持横屏、竖屏(全屏播放还可锁定屏幕方向),上下滑动调节音量、屏幕亮度,左右滑动调节播放进度。

    github地址是:https://github.com/v5yingying/WatchVideo.git

    因为我的模拟器一直启动不起来,所以今天就不录制小视频了,放一张图片:

    今晚更新一下xcode,希望明天能录制小视频给你们看,下面上代码:

    首先创建cell,

    - (void)awakeFromNib {

    [superawakeFromNib];

    self.selectionStyle=UITableViewCellSelectionStyleNone;

    [selflayoutIfNeeded];

    self.bgImgView.tag=101;

    self.bgImgView.userInteractionEnabled=YES;

    self.playBtn= [UIButtonbuttonWithType:UIButtonTypeCustom];

    [self.playBtnsetImage:[UIImageimageNamed:@"video_list_cell_big_icon"]forState:UIControlStateNormal];

    [self.playBtnaddTarget:selfaction:@selector(playVideo:)forControlEvents:UIControlEventTouchUpInside];

    [self.bgImgViewaddSubview:self.playBtn];

    [self.playBtnmas_makeConstraints:^(MASConstraintMaker*make) {

    make.center.equalTo(self.bgImgView);

    make.width.height.mas_equalTo(50);

    }];

    }

    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {

    [supersetSelected:selectedanimated:animated];

    }

    - (void)playVideo:(UIButton*)sender{

    if(self.playBlock) {

    self.playBlock(sender);

    }

    }

    然后创建controller,

    @interfaceYYWatchVideoViewController()

    @property(nonatomic,strong)UITableView*tableView;

    @property(nonatomic,strong)ZFPlayerView*playerView;

    @property(nonatomic,strong)ZFPlayerModel*playerModel;

    @end

    @implementationYYWatchVideoViewController

    #pragma mark - lifeCycle

    - (void)viewDidLoad {

    [superviewDidLoad];

    [selfinitSubviews];

    }

    #pragma mark -设置UI

    - (void) initSubviews {

    self.view.backgroundColor= [UIColorwhiteColor];

    [selfsetupTableView];

    [self.viewaddSubview:self.tableView];

    //设置约束

    [self.tableViewmas_makeConstraints:^(MASConstraintMaker*make) {

    make.left.right.mas_equalTo(self.view);

    make.top.mas_equalTo(self.view).mas_offset(64);

    make.height.mas_equalTo(self.view.bounds.size.height);

    }];

    }

    #pragma mark -设置tableview

    - (void) setupTableView{

    self.tableView.backgroundColor= [UIColorwhiteColor];

    self.tableView.dataSource=self;

    self.tableView.delegate=self;

    self.tableView.estimatedRowHeight=379.0f;

    self.tableView.rowHeight=UITableViewAutomaticDimension;

    [self.tableViewregisterNib:[UINibnibWithNibName:@"YYWatchVideoCell"bundle:nil]forCellReuseIdentifier:watchCellID];

    }

    - (void)viewWillDisappear:(BOOL)animated{

    [superviewWillDisappear:animated];

    [self.playerViewresetPlayer];

    }

    #pragma mark - UITableViewDataSource

    - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{

    return10;

    }

    - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{

    YYWatchVideoCell*cell = [tableViewdequeueReusableCellWithIdentifier:watchCellID];

    __blockNSIndexPath*weakIndexPath = indexPath;

    __blockYYWatchVideoCell*weakCell = cell;

    cell.playBlock= ^(UIButton*btn){

    NSURL*videoURL = [NSURLURLWithString:@"http://files.selfimg.com.cn/media/video/2016/11/18/11ee13997555832e38f169b6d4f14bfa.mp4"];

    self.playerModel= [[ZFPlayerModelalloc]init];

    self.playerModel.videoURL= videoURL;

    self.playerModel.tableView=self.tableView;

    self.playerModel.indexPath= weakIndexPath;

    self.playerModel.cellImageViewTag= weakCell.bgImgView.tag;

    self.playerView.playerModel=self.playerModel;

    [self.playerViewaddPlayerToCellImageView:weakCell.bgImgView];

    [self.playerViewautoPlayTheVideo];

    };

    returncell;

    }

    #pragma mark - lazy

    - (UITableView*)tableView{

    if(_tableView==nil) {

    _tableView= [[UITableViewalloc]init];

    }

    return_tableView;

    }

    - (ZFPlayerView*)playerView{

    if(_playerView==nil) {

    _playerView= [ZFPlayerViewsharedPlayerView];

    _playerView.delegate=self;

    ZFPlayerControlView*controlView = [[ZFPlayerControlViewalloc]init];

    _playerView.controlView= controlView;

    }

    return_playerView;

    }

    @end

    这样就可以实现视频播放功能了,快操作一下试试吧~

    相关文章

      网友评论

        本文标题:iOS开发--视频播放

        本文链接:https://www.haomeiwen.com/subject/fpegmttx.html