ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController

原创 2015年11月21日 17:13:35

这两者的区别就是MPMoviePlayerViewController里面包含了一个MPMoviePlayerController

MPMoviePlayerController

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

 - (void)createMPPlayerController:(NSString *)sFileNamePath {

  NSURL *movieURL = [NSURL fileURLWithPath:sFileNamePath];

 MPMoviePlayerController *movewController =[[MPMoviePlayerController alloc] initWithContentURL:movieURL];

 [movewController prepareToPlay];

 [self.view addSubview:movewController.view];//设置写在添加之后   // 这里是addSubView

 movewController.shouldAutoplay=YES;

 [movewController setControlStyle:MPMovieControlStyleDefault];

 [movewController setFullscreen:YES];

 [movewController.view setFrame:self.view.bounds];

 这里注册相关操作的通知

 [[NSNotificationCenter defaultCenteraddObserver:self

                                             selector:@selector(movieFinishedCallback:)

                                                 name:MPMoviePlayerPlaybackDidFinishNotification

                                               object:moveViewController.movewController]; //播放完后的通知


 [movewController release];

}

-(void)movieFinishedCallback:(NSNotification*)notify {

    MPMoviePlayerController* theMovie = [notifyobject];

    [[NSNotificationCenterdefaultCenterremoveObserver:self

                                                    name:MPMoviePlayerPlaybackDidFinishNotification

                                                  object:theMovie];

    [theMovie.view removeFromSuperview];

    [theMovie release];

}

//////////////////////////////// end

2.介绍下MPMoviePlayerViewController。 

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

- (void)createMPPlayerController:(NSString *)sFileNamePath {

    MPMoviePlayerViewController *moviePlayer =[[MPMoviePlayerViewControllerallocinitWithContentURL:[NSURLfileURLWithPath:sFileNamePath]];

    [moviePlayer.moviePlayerprepareToPlay];

    [selfpresentMoviePlayerViewControllerAnimated:moviePlayer]; // 这里是presentMoviePlayerViewControllerAnimated

    [moviePlayer.moviePlayersetControlStyle:MPMovieControlStyleFullscreen];

    [moviePlayer.view setBackgroundColor:[UIColor clearColor]];

    [moviePlayer.view setFrame:self.view.bounds];

    [[NSNotificationCenterdefaultCenteraddObserver:self

                                             selector:@selector(movieFinishedCallback:)

                                                 name:MPMoviePlayerPlaybackDidFinishNotification

                                               object:moviePlayer.moviePlayer];

    [moviePlayer release];

}

-(void)movieStateChangeCallback:(NSNotification*)notify  {

   //点击播放器中的播放/ 暂停按钮响应的通知

}

-(void)movieFinishedCallback:(NSNotification*)notify{

   // 视频播放完或者在presentMoviePlayerViewControllerAnimated下的Done按钮被点击响应的通知。

    MPMoviePlayerController* theMovie = [notifyobject];

    [[NSNotificationCenterdefaultCenterremoveObserver:self

                                                    name:MPMoviePlayerPlaybackDidFinishNotification

                                                  object:theMovie];

    [selfdismissMoviePlayerViewControllerAnimated];

}


以下是资料

 moviePlayer.moviewControlMode = MPMovieControlModeDefault;

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

 MPMovieControlModeVolumeOnly         只显示音量控制

 MPMovieControlModeHidden             没有控制器

 

 moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

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

 MPMovieScallingModeNone            不做任何缩放

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

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

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

 

 你会观察到以下通知:

 MPMoviePlayerContentPreloadDidFinishNotification

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

 MPMoviePlayerScallingModeDidChangedNotification

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

 MPMoviePlayerPlaybackDidFinishNotification

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

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

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

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

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

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

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

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

MPMoviePlayerViewController和MPMoviePlayerController的使用

ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。前者是一个view,后者是个Controller。区别就是MPM...
  • nogodoss
  • nogodoss
  • 2013年11月05日 09:52
  • 31113

MPMoviePlayerViewController 播放完不退出

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

MPMoviePlayerController播放视频时黑屏

解决办法:把 MPMoviePlayerController 类声明的 属性 定义成 全局变量就行了,为什么要这么做,我也不知道,这要问苹果公司了。例代码:#import "ViewControlle...
  • zhengang007
  • zhengang007
  • 2015年08月25日 11:55
  • 3343

[基础]MPMoviePlayerViewController实现MP4播放

MP4
  • Jeff_NJUT
  • Jeff_NJUT
  • 2016年04月11日 23:20
  • 464

关于MPMoviePlayerController类播放视频时,外放没有声音的问题

相信不少的朋友遇到了“播放视频时,戴耳机有声音,外放没有声音”这个问题。我这里就直接说解决方案。 一、导入音频资源类 #import "AVFoundation/AVAudioSession....
  • AoChiTianXiaL
  • AoChiTianXiaL
  • 2016年03月21日 19:14
  • 1338

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

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

使用MPMoviePlayerController播放在线视频

在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频和网络视频播放。这个类实现了MPMediaPlayback...
  • jueyi1127
  • jueyi1127
  • 2015年07月08日 14:47
  • 3653
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController
举报原因:
原因补充:

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