视频
视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频
它的播放是需要媒介的,也就是今天zeroling主要阐述的内容—播放器:
1.AVplayer
是一个可以播放任何格式的全功能影音播放器,但是在使用时,是有前提的,即需要先引入AVFoundation.h框架;
支持多种视频格式如:WMV AVI RMVB MP4等格式;
音频格式: MP3 WMA 等;
如果单纯使用AVPlayerl类是不能显示的,需要将其视频层加载至AVPlayerLayer中才可以,这一点是需要注意的;强调(他并未提供视频操作组件,需要用户自定义)
2AVPlayerViewcontroller
提供了默认的可视化控制界面,使用时,需要导入AVKit.h
AVPlayerViewcontroller整合了一个完整的播放器,可作为控制器进行操作显示;
其支持的格式有:MP4,MPV 3gp等;
3MPMediaPlayerController
作用同AVPlayerViewcontroller
只是,版本较老,是9.0以前的所以它里边的方法,相对来说比较old
所以就不多介绍了;
一下将以代码阐述如何使用:
第一种方式
//建立路径
// NSString *path = [[NSBundle mainBundle]pathForResource:@"张韶涵-第一页.mp4" ofType:nil];
// //路径转化成nsurl 类型;
// NSURL *url = [NSURL fileURLWithPath:path];
// //创建一个播放器
// AVPlayer *player = [AVPlayer playerWithURL:url];
// //实例化播放视图控制器
// AVPlayerLayer *PlayerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
// PlayerLayer.frame = CGRectMake(0, 50, 375, 400);
// [self.view.layer addSublayer:PlayerLayer];
// // [player play];
第二种方式
UIButton *but = [[UIButton alloc]initWithFrame:CGRectMake(0,500 , 60, 30)];
// [but addTarget:self action:@selector(player:) forControlEvents:UIControlEventTouchUpInside];
// [but setBackgroundColor:[UIColor redColor]];
// [but setTitle:@"播放" forState:UIControlStateNormal];
// [self.view addSubview:but];
//}
//-(void)player:(UIButton *)sender
//{
// //创建路径
// NSString *path = [[NSBundle mainBundle]pathForResource:@"1.mp4" ofType:nil];
// //将路径转化成NSURl类型
// NSURL *url = [NSURL fileURLWithPath:path];
// //创建一个播放器
// AVPlayer * player = [AVPlayer playerWithURL:url];
// //实例化一个AV视图控制器
// AVPlayerViewController *Avcontroller =[[AVPlayerViewController alloc]init];
// //加载播放器到视图控制器
// Avcontroller.player =player;
// //跳转到视图控制器
// [self presentViewController:Avcontroller animated:YES completion:nil];
第三种方式:
//建立路径
NSString *path = [[NSBundle mainBundle]pathForResource:@"1.mp4" ofType:nil];
NSLog(@"%@",path);
//路径转化成nsurl 类型;
NSURL *url = [NSURL fileURLWithPath:path];
_moviePlayer=[[MPMoviePlayerController alloc]initWithContentURL:url];
_moviePlayer.view.frame = self.view.bounds;
[self.view addSubview:_moviePlayer.view];