ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。前者是一个view,后者是个Controller。差别就是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 defaultCenter] addObserver:self

                                             selector:@selector(movieFinishedCallback:)

                                                 name:MPMoviePlayerPlaybackDidFinishNotification

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

 [movewController release];

}

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

    MPMoviePlayerController* theMovie = [notify object];

    [[NSNotificationCenter defaultCenter] removeObserver:self

                                                    name:MPMoviePlayerPlaybackDidFinishNotification

                                                  object:theMovie];

    [theMovie.view removeFromSuperview];

    [theMovie release];

}

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

2.介绍下MPMoviePlayerViewController。 

注意:MPMoviePlayerViewController 必须 presentMoviePlayerViewControllerAnimated方式加入,否则Donebutton是不会响应通知MPMoviePlayerPlaybackDidFinishNotification事件的。

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

    MPMoviePlayerViewController *moviePlayer =[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:sFileNamePath]];

    [moviePlayer.moviePlayer prepareToPlay];

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

    [moviePlayer.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];

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

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

    [[NSNotificationCenter defaultCenter] addObserver:self

                                             selector:@selector(movieFinishedCallback:)

                                                 name:MPMoviePlayerPlaybackDidFinishNotification

                                               object:moviePlayer.moviePlayer];

    [moviePlayer release];

}

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

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

}

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

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

    MPMoviePlayerController* theMovie = [notify object];

    [[NSNotificationCenter defaultCenter] removeObserver:self

                                                    name:MPMoviePlayerPlaybackDidFinishNotification

                                                  object:theMovie];

    [self dismissMoviePlayerViewControllerAnimated];

}

下面是资料

 moviePlayer.moviewControlMode = MPMovieControlModeDefault;

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

 MPMovieControlModeVolumeOnly         仅仅显示音量控制

 MPMovieControlModeHidden             没有控制器

 

 moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

 你能够使用下列宽高比值:

 MPMovieScallingModeNone            不做不论什么缩放

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

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

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

 

 你会观察到下面通知:

 MPMoviePlayerContentPreloadDidFinishNotification

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

 MPMoviePlayerScallingModeDidChangedNotification

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

 MPMoviePlayerPlaybackDidFinishNotification

 当电影播放完成或者用户按下了Donebutton后发出。

MPMoviePlayerViewController和MPMoviePlayerController的使用的更多相关文章

  1. iOS开发--利用MPMoviePlayerViewController播放视频简单实现

    一.MPMoviePlayerViewController和MPMoviePlayerController区分开,前者继承自NSObject,后者继承自UIViewController 二.MPMov ...

  2. iOS开发系列- 视频MPMoviePlayerController

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

  3. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  4. IOS多媒体

    概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...

  5. 《转》iOS音频视频初级开发

    代码改变世界 Posts - 73, Articles - 0, Comments - 1539 Cnblogs Dashboard Logout HOME CONTACT GALLERY RSS   ...

  6. iOS开发----音频播放、录音、视频播放、拍照、视频录制

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  7. iOS音频

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  8. 音频播放、录音、视频播放、拍照、视频录制-b

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  9. ios音频视频资料--备用

    视频播放 MediaPlayer.framework MPMoviePlayerViewController VS MPMoviePlayerController MPMoviePlayerViewC ...

随机推荐

  1. VS2015+NUnit+OpenCover 完成单元测试代码覆盖率测试

    1.VS2015+NUnit+OpenCover 完成单元测试代码覆盖率测试 https://download.csdn.net/download/qq_39441918/10522539 2.*注意 ...

  2. STL之vector(不定长数组)

    vector就是一个不定长数组,另外它把一些常用操作“封装”在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_ba ...

  3. Problem03 水仙花数

    题目:打印出所有的"水仙花数"."水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例如:153是一个"水仙花数",因为153=1的 ...

  4. 常见的几种web攻击方式

    一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是发送大量的合法请求到服务器,服 ...

  5. Fortran和C的编译器PGI部署

    平台信息 Description: CentOS Linux release 7.6.1810 (Core) 安装步骤 获取PGCC:社区版是免费的,自带license.dat 解压下载的压缩包:ta ...

  6. javascript Array数组详解 各种方法

    1.数组的声明方法(1): arrayObj = new Array(); //创建一个数组.复制代码 代码如下: var arr1 = new Array(); (2):arrayObj = new ...

  7. jquery.getParams.js

    本文参照:http://www.cnblogs.com/cocos/archive/2010/05/14/1735046.html jQuery.extend({ /** * Returns get ...

  8. LeetCode 110.平衡二叉树(C++)

    给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,null,nu ...

  9. 二叉查找树的C语言实现(一)

    什么是二叉查找树? 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具 ...

  10. pat1038. Recover the Smallest Number (30)

    1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...