iOS 重修笔记

重修笔记之多媒体MPMoviePlayerController播

2018-03-19  本文已影响9人  iOS_July
video.gif

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

一、MPMoviePlayerController常用属性

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

属性声明 功能描述
@property (nonatomic) MPMovieSourceType movieSourceType; 设置、获取文件类型,是本地文件还是流媒体
@property (nonatomic, copy) NSURL *contentURL; 设置、获取播放内容的地址[如果在播放过程中改变了内容地址,则暂停当前内容,从头开始播放新内容]
@property (nonatomic) MPMovieControlStyle controlStyle; 设置、获取播放器的样式,全屏、嵌入视图、无视图
@property (nonatomic) MPMovieScalingMode scalingMode; 设置、获取视频播放的缩放模式
typedef NS_ENUM(NSInteger, MPMovieControlStyle) {
    MPMovieControlStyleNone,       // 不显示视图
    MPMovieControlStyleEmbedded,   // 播放器显示在一个嵌入的视图中
    MPMovieControlStyleFullscreen, // 播放器全屏显示
    
    MPMovieControlStyleDefault = MPMovieControlStyleEmbedded
} MP_DEPRECATED("Use AVPlayerViewController in AVKit.", ios(3.2, 9.0)) MP_PROHIBITED(tvos);
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服务器,这里有传送门哦!

上一篇下一篇

猜你喜欢

热点阅读