美文网首页iOS 重修笔记
重修笔记之多媒体MPMoviePlayerController播

重修笔记之多媒体MPMoviePlayerController播

作者: iOS_July | 来源:发表于2018-03-19 11:01 被阅读9次
    video.gif

    在实际应用中,除了听音乐照相之外视频服务可以说是必不可少的!
    MPMoviePlayerController类是iOS提供的一个封装性强功能性强大的视频播放类。
    自带播放视频的视图,还有一个播放控制栏,可以播放暂停拖动播放进度结束播放全屏播放等。

    一、MPMoviePlayerController常用属性

    MPMoviePlayerController支持全屏播放嵌入视图播放无视图播放,这些播放样式是通过它的controlStyle属性设置的。

    • MPMoviePlayerController常用属性表:
    属性声明 功能描述
    @property (nonatomic) MPMovieSourceType movieSourceType; 设置、获取文件类型,是本地文件还是流媒体
    @property (nonatomic, copy) NSURL *contentURL; 设置、获取播放内容的地址[如果在播放过程中改变了内容地址,则暂停当前内容,从头开始播放新内容]
    @property (nonatomic) MPMovieControlStyle controlStyle; 设置、获取播放器的样式,全屏、嵌入视图、无视图
    @property (nonatomic) MPMovieScalingMode scalingMode; 设置、获取视频播放的缩放模式
    • controlStyle:
    typedef NS_ENUM(NSInteger, MPMovieControlStyle) {
        MPMovieControlStyleNone,       // 不显示视图
        MPMovieControlStyleEmbedded,   // 播放器显示在一个嵌入的视图中
        MPMovieControlStyleFullscreen, // 播放器全屏显示
        
        MPMovieControlStyleDefault = MPMovieControlStyleEmbedded
    } MP_DEPRECATED("Use AVPlayerViewController in AVKit.", ios(3.2, 9.0)) MP_PROHIBITED(tvos);
    
    • scalingMode
    typedef NS_ENUM(NSInteger, MPMovieScalingMode) {
        MPMovieScalingModeNone,       // 不做缩放的处理
        MPMovieScalingModeAspectFit,  // 保持宽高比,适应屏幕大小
        MPMovieScalingModeAspectFill, // 保持宽高比,适应屏幕大小,让画面充满整个屏幕
        MPMovieScalingModeFill        // 画面充满整个屏幕,不保持宽高比
    } MP_DEPRECATED("Use AVPlayerViewController in AVKit.", ios(2.0, 9.0)) MP_PROHIBITED(tvos);
    

    二、笔者的简单示例

    #import "ViewController.h"
    #import <MediaPlayer/MediaPlayer.h>
    
    @interface ViewController ()
    /** 播放器*/
    @property (nonatomic, strong) MPMoviePlayerController *MPPlayer;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [self setupToPlay];
        
    }
    - (void)setupToPlay{
        //根据URL创建播放器
        //    NSURL *url = [[NSBundle mainBundle] URLForResource:@"testMovie.mp4" withExtension:nil];
        
        NSURL *url = [NSURL URLWithString:@"http://localhost/Videos/testMovie.mp4"];//127.0.0.1
        
        
        MPMoviePlayerController *MPPlayer = [[MPMoviePlayerController alloc]initWithContentURL:url];
        
        //设置播放器的视图
        [self.view addSubview:MPPlayer.view];
        MPPlayer.view.frame = self.view.bounds;
        self.MPPlayer = MPPlayer;
        
        //适配播放器View,实现旋转
        [self.MPPlayer.view setTranslatesAutoresizingMaskIntoConstraints:NO];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[view]-0-|" options:0 metrics:nil views:@{@"view":self.MPPlayer.view}]];
        [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[view]-0-|" options:0 metrics:nil views:@{@"view":self.MPPlayer.view}]];
        
        
        
        //准备播放
        [self.MPPlayer prepareToPlay];
        [self.MPPlayer play];
    
    }
    
    补充:
    这里我的url创建方式有两种,
    本地资源: 
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"testMovie.mp4" withExtension:nil];
    
    网络资源:
    NSURL *url = [NSURL URLWithString:@"http://localhost/Videos/testMovie.mp4"];//127.0.0.1
    

    这里我的视频资源放在了我电脑搭建的服务器上面,Mac上如何搭建Apache服务器,这里有传送门哦!

    相关文章

      网友评论

        本文标题:重修笔记之多媒体MPMoviePlayerController播

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