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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值