1. 程式人生 > >iOS系統自帶的視訊播放器

iOS系統自帶的視訊播放器

簡述: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];
}

最後其他人的視訊播放

視訊文件1
視訊文件2