关闭

iOS中 MPMoviePlayer 实现视频音频播放 作者:韩俊强

标签: 视频播放韩俊强的博客MPMoviePlayeriOs开发
2209人阅读 评论(0) 收藏 举报
分类:

ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。前者是一个view,后者是个Controller。区别就是 MPMoviePlayerViewController里面包含了一个MPMoviePlayerController

 

 注意:MPMoviePlayerViewController 必须   presentMoviePlayerViewControllerAnimated方式添加,否则Done按钮是不会响应通知MPMoviePlayerPlaybackDidFinishNotification事件的;

 

 首先要包含  #import  <MediaPlayer/MediaPlayer.h>头文件和MediaPlayer.framework。

 

 

 MPMovieControlModeDefault             显示播放 / 暂停、音量和时间控制

 MPMovieControlModeVolumeOnly          只显示音量控制

 MPMovieControlModeHidden              没有控制器

 

 

 

 你可以使用下列宽高比值:

 MPMovieScallingModeNone             不做任何缩放

 MPMovieScallingModeAspectFit        适应屏幕大小,保持宽高比

 MPMovieScallingModeAspectFill       适应屏幕大小,保持宽高比,可裁剪

 MPMovieScallingModeFill             充满屏幕,不保持宽高比

 

 

 //通知

 MPMoviePlayerContentPreloadDidFinishNotification  当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。

 

 MPMoviePlayerScallingModeDidChangedNotification  当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。

 

 MPMoviePlayerPlaybackDidFinishNotification  当电影播放完毕或者用户按下了 Done 按钮后发出

===============================================================================

需要引进的框架:MediaPlayer.framework

第一步:引进框架设置属性

#import "RootViewController.h"
#import <MediaPlayer/MediaPlayer.h>


@interface RootViewController ()

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;

@end

@implementation RootViewController

调用:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    // 5.调用播放器
    
    //播放网络视频
    NSString *urlString = @"http://video.szzhangchu.com/qiaokeliruanxinbudingA.mp4";
    //播放本地视图,找到文件的路径
    
//    NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"优酷网-唐豆豆微信摇一摇惨被骗.mp4" ofType:nil];
    
    [self createMPPlayerController:urlString];
    
}

第二步:创建播放器

- (void)createMPPlayerController:(NSString *)string
{
   // 1.初始化播放器
    
    //准备网址
//     NSURL *urlString = [NSURL fileURLWithPath:fileNamePath];
     NSURL *urlString = [NSURL URLWithString:string];
    
    //初始化播放器
   self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:urlString];
   
    //准备播放
//    [_moviePlayer prepareToPlay];
    //设置moviePlayer的frame
    _moviePlayer.view.frame = self.view.frame;
    //添加到父视图
    [self.view addSubview:_moviePlayer.view];
    
    
    // 2.配置属性

    //是否自动播放,默认是NO
    _moviePlayer.shouldAutoplay = YES;
    //设置播放器的样式
    [_moviePlayer setControlStyle:(MPMovieControlStyleFullscreen)];
    //开始播放
    [_moviePlayer play];
    
    
    // 3.注册通知
    //注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinshed:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    
    
}

第三步:实现通知方法

// 4.实现通知中的方法
- (void)movieFinshed:(NSNotification *)sender
{
    //取出通知中心的moviePlayer
    MPMoviePlayerController *movie = [sender object];
    
    //移除观察者
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
    //将movie移出父视图
    [movie.view removeFromSuperview];
    
}

最终效果:



关注博主微博每日更新技术:http://weibo.com/hanjunqiang

3
0
查看评论

iOS中 自定义系统相机 作者:韩俊强

iOS中 自定义系统相机 作者:韩俊强 实现:拍照/闪光灯自动开闭/聚焦光圈等相关功能! 百度搜"韩俊强iOS"了解更多......
  • qq_31810357
  • qq_31810357
  • 2015-11-20 08:24
  • 2307

iOS中 Animation 动画大全 韩俊强的博客

1.iOS中我们能看到的控件都是UIView的子类,比如UIButton UILabel UITextField UIImageView等等 2.UIView能够在屏幕的显示是因为在创建它的时候内部自动添加一个CALayer图层,通过这个图层在屏幕上显示的时候会调用一个drawRect: 的方法,...
  • qq_31810357
  • qq_31810357
  • 2015-10-21 18:37
  • 6087

面试中最易被“秒杀”的十种表现

面试,你懂么?你肯定会说,这谁不懂。但,偏偏就因为各种原因,或经验不足、或准备不足、或行为举止不当等问题,你被HR"秒杀"了。在这里,向阳生涯不谈面试技巧,而是实实在在提醒每一位求职者,面试中一定会被"秒杀"的十种表现,避免这些现象,起码能让你的面试成功率提高...
  • qq_31810357
  • qq_31810357
  • 2015-10-08 09:03
  • 1095

韩俊强新浪博客语录

不要期待,不要假想,顺其自然,如果注定,就一定会发生。人生没有那么多莺莺燕燕,什么是好的生活,什么是好的伴侣,无非就是,你饿了,做给你吃,你渴了,端给你喝,你冷了,给你盖被,你病了,给你拿药,哪怕你心烦了,也能骂他几句不是。脚踏实地的,比什么都强。【读懂这几句话胜读十年书】1,蜘蛛:能坐享其成,靠的...
  • qq_31810357
  • qq_31810357
  • 2015-10-08 09:03
  • 672

iOS中 图文混排/自定义图文混排 作者:韩俊强

// 翻转坐标系 // 参数1:文本宽度占Label的比例(0 ~ 1) // 参数2:水平方向文字逐渐往下(参数 > 0, 往上: 参数 < 0)偏移,如果是正数,逐渐向上偏移 // 参数3:在竖直方向上,从下往上每行文字逐渐往右(参数 > 0, 往左: ...
  • qq_31810357
  • qq_31810357
  • 2015-12-01 08:22
  • 2487

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

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

iOS MPMoviePlayerController播放视频及添加监听事件

iOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类,可以轻松用来实现视频播放。MPMoviePlayerViewController只能全屏播放视频。 本文转自,查看原文请戳这里 #import "...
  • qq_33777090
  • qq_33777090
  • 2016-10-10 15:22
  • 1217

iOS中发送短信/发送邮件的实现 韩俊强的博客

用openURL来打开程序中的短信功能, 需要用到关键字: "sms:", 后面加上要发送的电话就可以了; 缺点:1.这个方法会跳出我们正在运行的程序,打开系统的短信界面, 但当用户关闭短信后, 无法回到程序. 2.这个方法我们只能定义要发送的手机号, 无法编辑发送的...
  • qq_31810357
  • qq_31810357
  • 2015-11-23 08:31
  • 1963

iOS中 MediaPlayer framework实现视频播放 韩俊强的博客

iOS开发中播放音乐可以使用MPMusicPlayerController类来实现,播放视频可以使用MPMoviePlayerController和MPMoviePlayerViewController类来实现,同时MPMediaPickerController 类可以用于从系统媒体库中选择媒体播放...
  • qq_31810357
  • qq_31810357
  • 2015-11-17 21:21
  • 1598

iOS 9音频应用播放音频之iOS 9音频播放进度

iOS 9音频应用播放音频之iOS 9音频播放进度
  • u014621518
  • u014621518
  • 2016-01-07 13:54
  • 1083
    个人资料
    • 访问:597266次
    • 积分:7048
    • 等级:
    • 排名:第3884名
    • 原创:240篇
    • 转载:10篇
    • 译文:1篇
    • 评论:214条
    我的微信公众号

    iOS开发者交流群: 官方付费群
    ①群:446310206
    ②群:426087546


    QQ: 点击这里给我发消息


    关注我的技术公众号,每天都有优质技术文章推送。
    微信关注我的公众号
    关注我的微博
    博客专栏
    我的小仓鼠

    有空帮我喂下仓鼠,谢谢!