在实际应用中,除了听音乐
、照相之外
,视频服务
可以说是必不可少的!
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服务器,这里有传送门哦!