iOS实现简单登录页背景 为视频动画

直接上代码:参考前辈的demo,做了一个优化 

注意点:1,全屏播放 2,循环播放 

 

@interface STLVideoViewController ()

@property (nonatomic,strong) AVPlayer *avplayer;

@property (nonatomic,strong) AVAudioSession *avaudioSession;

@property (nonatomic,assign) BOOL isLoop;

@end

@implementation STLVideoViewController

#pragma mark - allow background music still play

- (void)preparePlayback {

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[STLVideoFunctions getVideoUrl] ofType:[STLVideoFunctions getVideoType]]];

    AVAsset *avAsset = [AVAsset assetWithURL:url];

    AVPlayerItem *avPlayerItem =[[AVPlayerItem alloc] initWithAsset:avAsset];

    _avplayer = [[AVPlayer alloc]initWithPlayerItem:avPlayerItem];

   _avplayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; // set this

    AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:_avplayer];

    playerLayer.backgroundColor = [UIColor redColor].CGColor;

    playerLayer.frame = self.view.bounds;

    playerLayer.videoGravity =  AVLayerVideoGravityResizeAspectFill;

    [self.view.layer addSublayer:playerLayer];

}

#pragma mark - Notifications

- (void)playerItemDidPlayToEndTimeNotification:(NSNotification *)notification {

    [_avplayer seekToTime:kCMTimeZero]; // 设置从头继续播放

}

#pragma mark - life cycle

- (void)viewDidLoad {

    [super viewDidLoad];

    [self preparePlayback];

}

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    //视频播放完发通知

    [[NSNotificationCenter defaultCenter] addObserver:self

                                            selector:@selector(playerItemDidPlayToEndTimeNotification:)

                                                name:AVPlayerItemDidPlayToEndTimeNotification

                                            object:nil];

        [self.avplayer play];

}

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    //视频播放完发通知

    [[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:nil];

    [self.avplayer pause];

}

- (void)viewDidDisappear:(BOOL)animated {

    [super viewDidDisappear:animated];

}

@end

 

 

有什么好的建议可以留言 一起学习 探讨,谢谢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值