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的方法,增加了一种下拉展示动画效果
    
}


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

相关文章推荐

MPMoviePlayerViewController播放在线视频

之前介绍过 使用MPMoviePlayerController播放在线视频,本文将介绍MPMoviePlayerViewController,二者的区别就是MPMoviePlayerViewContr...

IOS MPMoviePlayerViewController视频播放(MediaPlayer)

视频播放 只需要调用playNativeMovie 方法传入一个 url路径字符串即可;/**播放视频*/ - (void)playNativeMovie:(NSString *)playUrlSt...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

ListView中视频播放的解决方案

真正实现Android的全屏功能,立志成为Android平台使用最广泛的视频播放控件 主要特点 全屏时启动新Activity实现播放器真正的全屏功能 可以完全自定义UI 能在ListView、Vi...

SurfaceView在线视频播放

Android中的3中视频播放方式: A自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。 BVideoView播放。在布局文件中使用VideoV...

玩转Android之在线视频播放控件Vitamio的使用

其实Android中自带的MediaPlayer本身就能播放在线视频,MediaPlayer结合SurfaceView播放在线视频也是不错的选择(如果你没有性能或者用户体验上的要求),关于MediaP...

Swift3 MPMoviePlayerViewController的使用,iOS播放视频

iOS播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。这两者的区别就是MPMoviePlayerViewContro...

iOS用MPMoviePlayerViewController 播放MP4视频

本文转自-红黑联盟 iOS播放视频 iOS sdk为播放视频提供了非常简便方法,提供的MPMoviePlayerViewController类作为开发使用,在iOS4以前的版本是MPMov...

使用MPMoviePlayerController播放在线视频

在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频和网络视频播放。这个类实现了MPMediaPlayback...

视频直播如何做回放(教程)

云视频服务商保利威视推出回放管理的云直播功能,用户直播时可一键录制,把直播内容作为点播文件播放,把视频的价值发挥到极致。以下是关于直播视频进行回放管理的设置详解。

UE4播放在UI上播放视频

上一次文章中为各位写到如何添加Start Up Movie的功能。但是读者很快会遇到问题。策划的需求几乎不可能这么简单(如果就是这么简单,那么恭喜你遇到了一个好策划),比如添加一些按钮可以控制视频播放...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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