iOS开发-视频播放

作者: superWX | 来源:发表于2015-08-23 19:14 被阅读19270次

    视频播放

    • 1> AVPlayer
      能播放本地、远程的音频、视频文件
      基于Layer显示,得自己去编写控制面板

    • 2> MPMoviePlayerController
      能播放本地、远程的音频、视频文件
      自带播放控制面板(暂停、播放、播放进度、是否要全屏)

    • 3> MPMoviePlayerViewController
      能播放本地、远程的音频、视频文件
      内部是封装了MPMoviePlayerController
      播放界面默认就是全屏的
      如果播放功能比较简单,仅仅是简单地播放远程、本地的视频文件,建议用这个

    区别

    1.AVPlayer(远程⾳音乐/播放视频)—>添加layer

    2.MPMoviePlayerController—>给.view设置frame,将这个view 添加到某⼀一个View

    3.MPMoviePlayerViewController(modal出来,⾃自动播放,⼀一定全 屏播放)

    1:AVPlayer

    • 可以播放远程视频(需要通过添加layer来显示视频)
    #pragma mark - 懒加载代码
    - (AVPlayer *)player
    {
       if (_player == nil) {
           // 1.获取URL(远程/本地)
           // NSURL *url = [[NSBundle mainBundle] URLForResource:@"01-知识回顾.mp4" withExtension:nil];
           NSURL *url = [NSURL URLWithString:@"http://v1.mukewang.com/a45016f4-08d6-4277-abe6-bcfd5244c201/L.mp4"];
           
           // 2.创建AVPlayerItem
           AVPlayerItem *item = [AVPlayerItem playerItemWithURL:url];
           
           // 3.创建AVPlayer
           _player = [AVPlayer playerWithPlayerItem:item];
           
           // 4.添加AVPlayerLayer
           AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:self.player];
           layer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width * 9 / 16);
           [self.view.layer addSublayer:layer];
       }
       return _player;
    }
    
    

    2:MPMoviePlayerController

    #import <MediaPlayer/MediaPlayer.h>
    
    #pragma mark - 懒加载代码
    - (MPMoviePlayerController *)playerController
    {
       if (_playerController == nil) {
           // 1.获取视频的URL
           NSURL *url = [NSURL URLWithString:@"http://v1.mukewang.com/19954d8f-e2c2-4c0a-b8c1-a4c826b5ca8b/L.mp4"];
           
           // 2.创建控制器
           _playerController = [[MPMoviePlayerController alloc] initWithContentURL:url];
           
           // 3.设置控制器的View的位置
           _playerController.view.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.width * 9 / 16);
           
           // 4.将View添加到控制器上
           [self.view addSubview:_playerController.view];
           
           // 5.设置属性
           _playerController.controlStyle = MPMovieControlStyleNone;
       }
       return _playerController;
    }
    
    

    3:MPMoviePlayerViewController

     #import <MediaPlayer/MediaPlayer.h>
     
     #pragma mark - 懒加载
    - (MPMoviePlayerViewController *)playerVc
    {
        if (_playerVc == nil) {
            NSURL *url = [NSURL URLWithString:@"http://v1.mukewang.com/a45016f4-08d6-4277-abe6-bcfd5244c201/L.mp4"];
            
            _playerVc = [[MPMoviePlayerViewController alloc] initWithContentURL:url];;
        }
        return _playerVc;
    }
    
    - (IBAction)play {
        [self presentMoviePlayerViewControllerAnimated:self.playerVc];
    }
    
    
    

    相关文章

      网友评论

      • 一起走过的黑夜变一地白雪:全部代码 在哪下载??
      • 别有洞天i:AVPlayer使用时,第四步,添加AVPlayerLayer时使用self.player不会造成死循环?
        会飞的盖伦:明察秋毫哈哈
      • 007Mango:MPMoviePlayerController 在iOS9以后被弃用。
        AVPlayerViewController 只能用于iOS8以后。

        最好的方法是对原生AVPlayer 进行封装
      • 张云龙:还有就算是播放音频,如何使用音乐播放啊?

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

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