iOS里面视频播放用到的是AVPlayer(包含在AVFoundation框架内)与AVAudioplayer有点类似
但是AVPlayer得功能跟加强大,他可以用来播放音频也可以用来播放视频 而且在播放音频方面能直接播放网络音频。
要使用AVPlayer播放视频 要引入这两个头文件:
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h>
具体实现:
@interface ViewController ()
//控制视频播放进度的控件
@property (weak, nonatomic) IBOutlet UISlider *progressSlider;
//声明播放视频的控件属性 [既可以播放视频也可以播放音频]
@property (nonatomic, strong) AVPlayer *player;
//播放的总时长
@property (nonatomic, assign)CGFloat sumPlayOperation;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//设置播放的url
NSString *playString = @"http://static.tripbe.com/videofiles/20121214/9533522808.f4v.mp4";
NSURL *url = [NSURL URLWithString:playString];
//设置播放的项目
AVPlayerItem *item = [[AVPlayerItem alloc] initWithURL:url];
//初始化player对象
self.player = [[AVPlayer alloc] initWithPlayerItem:item];
//设置播放页面
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:_player];
//设置播放页面的大小
layer.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 300);
//设置背景颜色
layer.backgroundColor = [UIColor purpleColor].CGColor;
//设置播放窗口和当前视图之间的比例显示内容
layer.videoGravity = AVLayerVideoGravityResizeAspect;
//添加播放视图到self.view上
[self.view.layer addSublayer:layer];
//设置播放进度的默认值
self.progressSlider.value = 0;
//设置播放的默认音量
self.player.volume = 1.0f;
}
#pragma mark - 开始播放按钮的响应方法
- (IBAction)startPlayer:(id)sender {
[self.player play];
}
#pragma mark - 暂停播放按钮响应方法
- (IBAction)stopPlayer:(id)sender {
[self.player pause];
}
#pragma mark - 播放进度条
- (IBAction)changeProgress:(id)sender {
self.sumPlayOperation = self.player.currentItem.duration.value / self.player.currentItem.duration.timescale;
//CMTtimeMake(a, b) a表示当前时间 b表示每秒钟有多少帧
[self.player seekToTime:CMTimeMake(self.progressSlider.value * self.sumPlayOperation, self.player.currentItem.duration.timescale) completionHandler:^(BOOL finished) {
[self.player play];
}];
}