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


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

相关文章推荐

使用MPMoviePlayerController播放在线视频

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

MPMoviePlayerController 网络视频加载

Iphone中已经自定义好了视频播放类MPMoviePlayerController,我们只需调用既可,我自己封装好了一个视频播放类,下面就直接给大家上代码吧。 #import #imp...

使用MPMoviePlayerController播放视频

MPMoviePlayerController播放视频 基本的视频播放,应该都是用MPMoviePlayerController吧,SDK文档里给出的例子也是这样的。 一般的步骤: 1. 准...

网页在线视频播放代码大全(收藏)

常用的网页在线视频播放代码,原文转自:http://www.jbxue.com/article/9042.html 使用说明:把代码中的视频路径换成与自己的相对路径或绝对路径,播放器的窗口大小,根据...

Java与Flex学习笔记(17)---Flex+Red5实现在线视频播放

每当在招聘网站上查看Flex岗位时,总看到一部分企业对Flex开发“攻城狮”要求对Red5 有一定了解。本人对Red5 服务器有了一定的认识后,我就迫不及待的想要实现这个Flex+Red5 播放视频的...

SurfaceView在线视频播放

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

AVPlayer 播放在线视频和本地文件(数据库)设置

首先使用AVPlayer 必须导入框架: AVFoundation 以及 头文件: # 两者的主要区别在路径的初始化:1、播放本地视频(数据库数据) titleLabel.text = ...

网页在线视频播放大全

使用说明:把代码中的视频路径换成与自己的相对路径或绝对路径,播放器的窗口大小,根据需要修改高和宽的参数。 1.avi格式    复制代码代码如下: ...
  • Yiyi_G
  • Yiyi_G
  • 2017年02月20日 16:56
  • 377

苹果设备下面的在线视频播放

介绍: 1.首先要说的是:苹果下面的视频播放一般使用m3u8和mp4的格式,其中最好是m3u8的格式 2.获取移动端视频的链接,可靠的方式是这个网址获取:http://flv.cn。使用见它们的官网 ...

在线视频播放App的实现

前一段时间在公司项目上做了一个视频播放的功能,当时时间紧,做完之后感觉有些地方处理的不好,所以就基于当时实现的思路进行了一些改进,加上自己平时喜欢看新闻客户端里面的一些短视频,所以就用网易等客户端的视...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MPMoviePlayerViewController播放在线视频
举报原因:
原因补充:

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