ios之AVPlayer的簡單應用


1.引入系統框架

2.創建視頻的url

3.創建播放項目

4.初始化播放器

5.設置播放頁面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//引入系統文件
#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
     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, [UIScreen mainScreen].bounds.size.width, 300);
     layer.backgroundColor = [UIColor cyanColor].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;
     //CMTimeMake(a,b) a表示當前時間,b表示每秒鍾有多少幀
     [ self .player seekToTime:CMTimeMakeWithSeconds( self .progressSlider.value* self .sumPlayOperation, self .player.currentItem.duration.timescale) completionHandler:^( BOOL finished) {
         [ self .player play];
     }];
     
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM