视频播放器
来源:互联网 发布:用c语言编写生日快乐 编辑:程序博客网 时间:2024/05/17 08:36
首先 添加MediaPlayer.framework
[movie setTitle:@"MPMoviePlayerController" forState:UIControlStateNormal];
[movie setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
movie.frame = CGRectMake(50, 100, 280, 50);
[movie addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchUpInside];
movie.layer.masksToBounds = YES;
movie.layer.cornerRadius = 10;
movie.layer.borderWidth = 1;
[self.view addSubview:movie];
// 停止按钮
UIButton *stop = [UIButton buttonWithType:UIButtonTypeCustom];
stop.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];
[stop setTitle:@"停止" forState:UIControlStateNormal];
[stop setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
stop.frame = CGRectMake(50, 500, 280, 50);
[stop addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside];
stop.layer.masksToBounds = YES;
stop.layer.cornerRadius = 10;
stop.layer.borderWidth = 1;
[self.view addSubview:stop];
// 横屏播放
UIButton *heng = [UIButton buttonWithType:UIButtonTypeCustom];
heng.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];
[heng setTitle:@"横屏" forState:UIControlStateNormal];
[heng setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
heng.frame = CGRectMake(50, 600, 280, 50);
[heng addTarget:self action:@selector(setupMovie) forControlEvents:UIControlEventTouchUpInside];
heng.layer.masksToBounds = YES;
heng.layer.cornerRadius = 10;
heng.layer.borderWidth = 1;
[self.view addSubview:heng];
// MPMovieScalingModeNone 不做任何缩放
// MPMovieScalingModeAspectFit 适应屏幕大小,保持宽高比
// MPMovieScalingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪
// MPMovieScalingModeFill 充满屏幕,不保持宽高比
self.movie.scalingMode = MPMovieScalingModeAspectFit;
在 ViewController.h 中导入#import <MediaPlayer/MediaPlayer.h>;
并在.h中建立属性 @property (nonatomic, strong) MPMoviePlayerController *movie;
以上就是在开始和在.h中做的准备工作
接下来是.m中的代码
我们首先定义三个按钮 一个是播放视频按钮 一个是暂停/停止按钮 一个是控制屏幕大小的按钮
或者还有一些其他的按钮 大家可以自己开发,我也验证过;
按钮:
在 viewDidLoad中
UIButton *movie = [UIButton buttonWithType:UIButtonTypeCustom];
movie.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];[movie setTitle:@"MPMoviePlayerController" forState:UIControlStateNormal];
[movie setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
movie.frame = CGRectMake(50, 100, 280, 50);
[movie addTarget:self action:@selector(playMovie:) forControlEvents:UIControlEventTouchUpInside];
movie.layer.masksToBounds = YES;
movie.layer.cornerRadius = 10;
movie.layer.borderWidth = 1;
[self.view addSubview:movie];
// 停止按钮
UIButton *stop = [UIButton buttonWithType:UIButtonTypeCustom];
stop.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];
[stop setTitle:@"停止" forState:UIControlStateNormal];
[stop setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
stop.frame = CGRectMake(50, 500, 280, 50);
[stop addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside];
stop.layer.masksToBounds = YES;
stop.layer.cornerRadius = 10;
stop.layer.borderWidth = 1;
[self.view addSubview:stop];
// 横屏播放
UIButton *heng = [UIButton buttonWithType:UIButtonTypeCustom];
heng.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.5];
[heng setTitle:@"横屏" forState:UIControlStateNormal];
[heng setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
heng.frame = CGRectMake(50, 600, 280, 50);
[heng addTarget:self action:@selector(setupMovie) forControlEvents:UIControlEventTouchUpInside];
heng.layer.masksToBounds = YES;
heng.layer.cornerRadius = 10;
heng.layer.borderWidth = 1;
[self.view addSubview:heng];
三个按钮创建好了
接下来就是要实现视频播放这一功能
上面三个按钮 自带三个方法 想必大家都知道
一 丶
我们就能在播放按钮中实现他的播放功能
#warning 很重要的一点是在头文件里已经把player变为属性了,@property(nonamaic,strong),如果不写为属性就会黑屏;
1. 视频文件路径
播放本地
NSString *path = [[NSBundle mainBundle] pathForResource:@"程序上传--最新" ofType:@"mp4"];
// 视频URL
// 视频URL
// NSURL *url = [NSURL fileURLWithPath:path];
播放网络视频(就是给他一个视频网址再将网址转化为url)
NSURL *url = [NSURL URLWithString:@"http://mv.hotmusique.com/mv_2_2/82/4e/82df0c842b919abc6059d73f273fc14e.mp4?k=2ca10756c2bba7e3&t=1424435660”];
1.视频播放对象
self.movie = [[MPMoviePlayerController alloc] initWithContentURL:url];
2.播放器样式
MPMovieControlStyleFullscreen 显示播放/暂停丶音量和时间控制
MPMovieControlStyleEmbedded 只显示音量控制
MPMovieControlStyleNone 没有控制器
self.movie.controlStyle = MPMovieControlStyleFullscreen;
3.播放器大小
self.movie.view.frame = CGRectMake(20, 200, 335, 200);
(self.movie.view.frame = CGRectMake(20,200,335,200);)
4.
// 宽高比值// MPMovieScalingModeNone 不做任何缩放
// MPMovieScalingModeAspectFit 适应屏幕大小,保持宽高比
// MPMovieScalingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪
// MPMovieScalingModeFill 充满屏幕,不保持宽高比
self.movie.scalingMode = MPMovieScalingModeAspectFit;
[self.view addSubview:self.movie.view];
// 你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):
// 注册一个播放结束的通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.movie];
[self.movie play];
}
// 注册一个播放结束的通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.movie];
[self.movie play];
}
// 在注册观察者模式中的函数实现
-(void)myMovieFinishedCallback:(NSNotification*)notify
{
//视频播放对象
MPMoviePlayerController* theMovie = [notify object];
//销毁播放通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:theMovie];
[theMovie.view removeFromSuperview];
NSLog(@"自动播放下一个");
}
{
//视频播放对象
MPMoviePlayerController* theMovie = [notify object];
//销毁播放通知
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:theMovie];
[theMovie.view removeFromSuperview];
NSLog(@"自动播放下一个");
}
在停止/暂停按钮中
// 视频停止
- (void)stop
{
[self.movie stop];
}
// 视频停止
- (void)stop
{
[self.movie stop];
}
控制横屏的按钮中
// 横屏播放
-(void)setupMovie
{
CGRect aFrame = [[UIScreen mainScreen] applicationFrame];
aFrame = CGRectMake(0.0f, 0.0f, aFrame.size.width, aFrame.size.height);
self.movie.controlStyle = MPMovieControlStyleDefault;
self.movie.view.frame = aFrame;
self.movie.view.center = CGPointMake(aFrame.size.width/2, aFrame.size.height/2);
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2);
[self.movie.view setTransform:transform];
[[[[UIApplication sharedApplication] delegate] window] addSubview:self.movie.view];
}
#pragma mark -------------------视频播放结束委托--------------------
// 横屏播放
-(void)setupMovie
{
CGRect aFrame = [[UIScreen mainScreen] applicationFrame];
aFrame = CGRectMake(0.0f, 0.0f, aFrame.size.width, aFrame.size.height);
self.movie.controlStyle = MPMovieControlStyleDefault;
self.movie.view.frame = aFrame;
self.movie.view.center = CGPointMake(aFrame.size.width/2, aFrame.size.height/2);
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2);
[self.movie.view setTransform:transform];
[[[[UIApplication sharedApplication] delegate] window] addSubview:self.movie.view];
}
#pragma mark -------------------视频播放结束委托--------------------
0 0
- 视频预览,视频播放器
- 视频播放器
- 视频播放器
- phonon 视频 播放器
- flex3 视频播放器
- 网页视频播放器
- web视频播放器
- FFMpeg视频播放器
- 网页 视频 播放器
- Android 视频播放器
- android 视频播放器
- 页面视频播放器
- flv视频播放器
- android视频播放器
- 视频播放器
- dav视频播放器
- 简易视频播放器
- 简易视频播放器
- 史上最佳myEclipse自动生成 servlet去注释方法,超赞!!
- Mysql explain详解
- 正则表达式入门
- dojo中Dialog对话框拖动移出浏览器屏幕的问题
- ubuntu 添加新用户
- 视频播放器
- 固定码,学习码,滚动码
- ORMLite学习入门笔记
- Android开机自启动+屏蔽系统功能
- 纯CSS下拉菜单代码
- PC/104总线简述
- iOS开发的一些奇巧淫技3
- MFC线程(一):简单介绍
- 所谓哥德巴赫猜想是说任何一个大于2的偶数都能表示为两个素数之和。