MPMoviePlayerViewController播放在线视频

原创 2015年07月08日 17:29:47

前言:之前介绍过 使用MPMoviePlayerController播放在线视频,本文将介绍MPMoviePlayerViewController,二者的区别就是MPMoviePlayerViewController包含了一个MPMoviePlayerViewController


一 使用方法

1 初始化和展示

 _playerViewVC = [[MPMoviePlayerViewController alloc] initWithContentURL:[self url]];
<span style="font-size:24px; color: rgb(51, 102, 255);"> </span><pre name="code" class="objc" style="color: rgb(51, 102, 255);">[self presentMoviePlayerViewControllerAnimated:self.playerViewVC];



2 具体实现


import <MediaPlayer/MediaPlayer.h>

@interface SecondVC()


@property (nonatomic,strong) MPMoviePlayerViewController *playerViewVC;

@end


@implementation SecondVC


- (void)viewDidLoad
{
    [super viewDidLoad];
    
    
}

- (NSURL *)url
{
    NSString *urlStr = @"http://7xawdc.com2.z0.glb.qiniucdn.com/o_19p6vdmi9148s16fs1ptehbm1vd59.mp4";
    urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url1 = [NSURL URLWithString:urlStr];
    return url1;
}

- (MPMoviePlayerViewController *)playerViewVC
{
    if (!_playerViewVC) {
        _playerViewVC = [[MPMoviePlayerViewController alloc] initWithContentURL:[self url]];
        [self addNofi];
    }
    return _playerViewVC;
}

/**
 *  添加视频播放的通知
 */
- (void)addNofi
{
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(playbackstateDidChange:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification   //播放状态改变,可配合playbakcState属性获取具体状态
                                               object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(playDidFinish:) //媒体播放完成或用户手动退出,具体完成原因可以通过通知userInfo中的key为MPMoviePlayerPlaybackDidFinishReasonUserInfoKey的对象获取
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:nil];
    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(thumImageGet:)
                                                 name:MPMoviePlayerThumbnailImageRequestDidFinishNotification   //视频缩略图截取成功时调用
                                               object:nil];
}


- (void)playbackstateDidChange:(NSNotification *)noti
{
    switch (self.playerViewVC.moviePlayer.playbackState) {
        case MPMoviePlaybackStateInterrupted:
            //中断
            NSLog(@"中断");
            break;
        case MPMoviePlaybackStatePaused:
            //暂停
            NSLog(@"暂停");
            break;
        case MPMoviePlaybackStatePlaying:
            //播放中
            NSLog(@"播放中");
            break;
        case MPMoviePlaybackStateSeekingBackward:
            //后退
            NSLog(@"后退");
            break;
        case MPMoviePlaybackStateSeekingForward:
            //快进
            NSLog(@"快进");
            break;
        case MPMoviePlaybackStateStopped:
            //停止
            NSLog(@"停止");
            break;
            
        default:
            break;
    }
}

- (void)playDidFinish:(NSNotification *)noti
{
    //播放完成
}

/**
 *  截图完成,每截取一张,会调取一次
 *
 *  @param noti <#noti description#>
 */
- (void)thumImageGet:(NSNotification *)noti
{
    UIImage *thumImage = [[noti userInfo] objectForKey:MPMoviePlayerThumbnailImageKey];
    UIImageWriteToSavedPhotosAlbum(thumImage, nil, nil, nil);
}

#pragma mark - 
#pragma mark - action

- (IBAction)showMoviePlayerView:(id)sender {
    
    self.playerViewVC = nil;
   // [self presentViewController:self.playerViewVC animated:YES completion:nil];
    [self presentMoviePlayerViewControllerAnimated:self.playerViewVC];  //注意,在MPMoviePlayerViewController.h中对UIViewController扩展两个用于模态展示和关闭MPMoviePlayerViewController的方法,增加了一种下拉展示动画效果
    
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS 视频播放 MPMoviePlayerViewController

#import  MediaPlayer.framework。 MPMoviePlayerViewController: 打开网络视频: -(void)op...
  • xueer8835
  • xueer8835
  • 2014年03月27日 15:11
  • 10590

使用MPMoviePlayerController播放在线视频

在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频和网络视频播放。这个类实现了MPMediaPlayback...
  • jueyi1127
  • jueyi1127
  • 2015年07月08日 14:47
  • 3651

MPMoviePlayerViewController播放本地视频一直Loading问题

大致代码如下: NSString *path = [[NSBundle mainBundle]pathForResource:@"7491.mp4" ofType:nil]; NSURL...
  • sinat_25544827
  • sinat_25544827
  • 2015年06月19日 15:40
  • 489

MPMoviePlayerViewController 播放完不退出

app中一个课程包含若干个章节,所以每次播放完一个章节后要求直接加载播放下一个课程。 遇到问题:由于MPMoviePlayerViewController监听了MPMoviePlayerPlay...
  • liupinghui
  • liupinghui
  • 2014年06月18日 10:21
  • 1093

iOS之AVPlayer、MPMoviePlayerController、MPMoviePlayerViewController、AVPlayerViewController播放音乐和视频

AVPlayer播放音乐#import /** 播放器 */ @property (nonatomic, strong) AVPlayer *player; #pragma mark - 懒加载代码...
  • wzc10101415
  • wzc10101415
  • 2017年02月16日 18:59
  • 518

MPMoviePlayerController刚进入ViewController就横屏满屏幕播放

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; moviePlayer = [[M...
  • s133315202
  • s133315202
  • 2015年04月28日 17:51
  • 648

iOS开发 MPMoviePlayerController和MPMoviePlayerViewController(视频播放)的使用

一.介绍 1.iOS9之前,iOS播放视频文件一般使用MPMoviePlayerViewController和 MPMoviePlayerController 2.MPMoviePlayerVie...
  • wgl_happy
  • wgl_happy
  • 2017年08月10日 17:07
  • 311

OC_MediaPlayer_MPMoviePlayerViewController(加载本地/网络视频)

/** * 使用系统视频播放本地视频/网络视频 */ -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { ...
  • baizhizhi
  • baizhizhi
  • 2015年08月24日 16:59
  • 1069

MPMovieplayerviewcontroller播放结束后自动消失的解决方案

你可以使用这段代码来阻止控制器播放在播放结束后自动dismissing(消失),并且捕捉到用户点击完成的按钮事件去自己定义并处理让你的MPMoviePlayerViewController播放器的消失...
  • u011298302
  • u011298302
  • 2016年01月11日 17:19
  • 1105

Android VideoView播放在线视频(2)

Android VideoView播放在线视频(2) 附录参考文章1简单介绍了如何使用Android VideoView播放本地视频,Android VideoView也可以直接播放在线视频资源...
  • zhangphil
  • zhangphil
  • 2015年11月17日 12:50
  • 2574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MPMoviePlayerViewController播放在线视频
举报原因:
原因补充:

(最多只允许输入30个字)