• AVPlayerViewController视频播放器


    前言

    iOS8之后系统自带使用AVPlayerViewController播放视频

    AVPlayerViewController

    AVPlayerViewController和导航控制器差不多,需要将它添加在一个视图控制器上,将它的视图添加视图上

    1.导入头文件

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

    2.声明成员变量

       AVPlayerViewController      *_playerController;
        AVPlayer                    *_player;
        AVAudioSession              *_session;
        NSString                    *_urlString;

    3.使用播放器

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        self.view.backgroundColor = [UIColor whiteColor];
        _session = [AVAudioSession sharedInstance];
        [_session setCategory:AVAudioSessionCategoryPlayback error:nil];
        
        _player = [AVPlayer playerWithURL:[NSURL URLWithString:@"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"]];
        _playerController = [[AVPlayerViewController alloc] init];
        _playerController.player = _player;
        _playerController.videoGravity = AVLayerVideoGravityResizeAspect;
        _playerController.allowsPictureInPicturePlayback = true;    //画中画,iPad可用
        _playerController.showsPlaybackControls = true;
        
        [self addChildViewController:_playerController];
        _playerController.view.translatesAutoresizingMaskIntoConstraints = true;    //AVPlayerViewController 内部可能是用约束写的,这句可以禁用自动约束,消除报错
        //self.view.bounds
        _playerController.view.frame = CGRectMake(0, 0, 320, 300);
        [self.view addSubview:_playerController.view];
        [_playerController.player play];    //自动播放
    }

    4.如果要使用iOS9的画中画(仅限平板)

    效果图:

  • 相关阅读:
    多线程下单例模式:懒加载(延迟加载)和即时加载
    Java 线程同步
    java 多线程之wait(),notify,notifyAll(),yield()
    序列化和反序列化及线程实现方式
    错题解析
    错题解析
    考试:错题总结
    测试:错题总结
    hashCode与equals的区别与联系
    @Not
  • 原文地址:https://www.cnblogs.com/hxwj/p/5230827.html
Copyright © 2020-2023  润新知