iOS系統自帶的視訊播放器
阿新 • • 發佈:2019-02-08
簡述:MPMoviePlayerController
,MPMoviePlayerViewController
,AVPlayerViewController
三種視訊播放器的講解
1.MPMoviePlayerController
效果:
-
MPMoviePlayerController,在MediaPlayer框架中
#import <MediaPlayer/MediaPlayer.h>
播放器可以任意修改播放頁面尺寸
程式碼:(你可以自己設定開始和暫停按鈕)
1.先自定義一個全域性的MPMoviePlayerController 物件 MPMoviePlayerController *mPMoviePlayerController; 2.視訊的播放 mPMoviePlayerController = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL URLWithString:@"http://v.jxvdy.com/sendfile/w5bgP3A8JgiQQo5l0hvoNGE2H16WbN09X-ONHPq3P3C1BISgf7C-qVs6_c8oaw3zKScO78I--b0BGFBRxlpw13sf2e54QA"]]; [self.view addSubview:mPMoviePlayerController.view]; mPMoviePlayerController.view.frame = CGRectMake(0, 100, 414, 300); [mPMoviePlayerController play];
[mPMoviePlayerController play]; //視訊開始播放
[mPMoviePlayerController pause]; //視訊暫停播放
2.MPMoviePlayerViewController的使用(跳轉使用就不用設定frame或者當前頁面播放)
效果:
MPMoviePlayerViewController 在MediaPlayer框架中
#import <MediaPlayer/MediaPlayer.h>
MPMoviePlayerViewController是一個特殊的檢視控制器類,它包含了一個播放器(MPMoviePlayerController)
1.先自定義一個全域性的MPMoviePlayerViewController 物件 MPMoviePlayerViewController *mPMoviePlayerViewController; 2.把下面的程式碼放到跳轉播放的按鈕方法裡面 mPMoviePlayerViewController = [[MPMoviePlayerViewController alloc]initWithContentURL:[NSURL URLWithString:@"http://v.jxvdy.com/sendfile/w5bgP3A8JgiQQo5l0hvoNGE2H16WbN09X-ONHPq3P3C1BISgf7C-qVs6_c8oaw3zKScO78I--b0BGFBRxlpw13sf2e54QA"]]; mPMoviePlayerViewController.view.frame = CGRectMake(0, 100, 414, 300); [self presentViewController:mPMoviePlayerViewController animated:YES completion:nil];
3.AVPlayerViewController播放視訊(跳轉播放,或者當前頁面播放)
AVPlayerViewController,iOS9之後新的一個視訊播放類,在AVKit框架中 跟MPMoviePlayerViewController一樣是一個試圖控制器類,但他內部通過與AVPlay搭配來實現播放視訊
1.需要匯入下面的框架
#import <AVKit/AVKit.h> 包含類 AVPlayerViewController
#import <AVFoundation/AVFoundation.h> 包含類 AVPlayer
2.建立全域性的物件
AVPlayerViewController *aVPlayerViewController;
3.寫程式碼
aVPlayerViewController = [[AVPlayerViewController alloc]init];
aVPlayerViewController.player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:@"http://v.jxvdy.com/sendfile/w5bgP3A8JgiQQo5l0hvoNGE2H16WbN09X-ONHPq3P3C1BISgf7C-qVs6_c8oaw3zKScO78I--b0BGFBRxlpw13sf2e54QA"]];
/**
* 進行視訊播放的跳轉
*/
UIButton *bofang = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 200, 50)];
[bofang setTitle:@"播放" forState:UIControlStateNormal];
[bofang setBackgroundColor:[UIColor brownColor]];
bofang.center = self.view.center;
[bofang addTarget:self action:@selector(bofang) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview: bofang];
4.播放(模態式的跳轉播放)
-(void)bofang
{
[self presentViewController:aVPlayerViewController animated:YES completion:nil];
}
5.這個也可以在當前頁面進行播放(物件.player + play來播放)
[aVPlayerViewController.player play];
4.AVPlayer播放視訊
需要匯入下面的框架
#import <AVFoundation/AVFoundation.h>
AVPlayerViewController,iOS9之後新的一個視訊播放類,在AVKit框架中
跟MPMoviePlayerViewController一樣是一個試圖控制器類,但他內部通過與AVPlay搭配來實現播放視訊
/*
* AVPlayer播放視訊流程
1、建立一個AVPlayerItem物件,每個AVPlayerItem物件,就是一個視訊或音訊
2、將AVPlayerItem物件放到一個AVPlayer物件,AVPlayer物件負責視訊的暫停與開啟操作
3、將AVPlayer放到一個AVPlayerLayer物件裡,AVPlayerLayer負責視訊的一個展示,他可以設定frame
4、將AVPlayLayer放到某試圖的layer層
5、播放
*/
程式碼:
//1 建立AVPlayerItem
AVPlayerItem *playerItem = [[AVPlayerItem alloc]initWithURL:[NSURL URLWithString:@"http://v.jxvdy.com/sendfile/w5bgP3A8JgiQQo5l0hvoNGE2H16WbN09X-ONHPq3P3C1BISgf7C-qVs6_c8oaw3zKScO78I--b0BGFBRxlpw13sf2e54QA"]];
//2.把AVPlayerItem放在AVPlayer上
player = [[AVPlayer alloc]initWithPlayerItem:playerItem];
//3 再把AVPlayer放到 AVPlayerLayer上
AVPlayerLayer *avplayerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
avplayerLayer.frame = CGRectMake(0, 100, 414, 300);
//4 最後把 AVPlayerLayer放到self.view.layer上(也就是需要放置的檢視的layer層上)
[self.view.layer addSublayer:avplayerLayer];
/**
* 視訊播放按鈕
*/
UIButton *bofang = [[UIButton alloc]initWithFrame:CGRectMake(50, CGRectGetMaxY(avplayerLayer.frame)+100, 100, 50)];
[bofang setTitle:@"播放" forState:UIControlStateNormal];
[bofang setBackgroundColor:[UIColor brownColor]];
[bofang addTarget:self action:@selector(bofang) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview: bofang];
/**
* 視訊暫停按鈕
*/
UIButton *zanting = [[UIButton alloc]initWithFrame:CGRectMake(WIDTH-150, CGRectGetMaxY(avplayerLayer.frame)+100, 100, 50)];
[zanting setTitle:@"播放" forState:UIControlStateNormal];
[zanting setBackgroundColor:[UIColor brownColor]];
[zanting addTarget:self action:@selector(zanting) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview: zanting];
視訊開始
-(void)bofang
{
[player play];
}
視訊暫停
-(void)zanting
{
[player pause];
}
最後其他人的視訊播放