您的位置:首页 > 产品设计 > 产品经理

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

2015-11-19 08:19 791 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: