@@ -13,13 +13,14 @@ import PryntTrimmerView
13
13
14
14
15
15
class ViewController : UIViewController {
16
-
16
+
17
17
@IBOutlet weak var renderView : MetalVideoProcessRenderView !
18
18
19
19
@IBOutlet weak var progressView : TrimmerView !
20
20
21
21
var player : MetalVideoProcessPlayer ?
22
22
var editor : MetalVideoEditor ?
23
+ public var motionIn : MetalVideoProcessMotion = MetalVideoProcessMoveInMotion ( )
23
24
24
25
override func viewDidLoad( ) {
25
26
super. viewDidLoad ( )
@@ -32,32 +33,37 @@ class ViewController: UIViewController {
32
33
self . editor = editor
33
34
let playerItem = editor. buildPlayerItem ( )
34
35
35
- let fadeIn = MetalVideoProcessFadeInMotion ( )
36
+ let fadeIn = motionIn
36
37
fadeIn. timingType = . quadraticEaseOut
37
38
38
- let fadeInTimeRange = CMTimeRangeMake ( start: CMTime ( seconds: 2.0 ) , duration: CMTime ( seconds: 2.0 ) )
39
+ let fadeOut = MetalVideoProcessFadeOutMotion ( )
40
+ fadeOut. timingType = . quarticEaseOut
41
+
42
+ let fadeInTimeRange = CMTimeRangeMake ( start: CMTime ( seconds: 0.0 ) , duration: CMTime ( seconds: 2.0 ) )
39
43
fadeIn. saveUniformSettings ( forTimelineRange: fadeInTimeRange, trackID: item1. trackID)
40
44
45
+ let fadeOutTimeRange = CMTimeRange ( start: item1. timeRange. end - CMTime( seconds: 4.0 ) , duration: CMTime ( seconds: 1.5 ) )
46
+ fadeOut. saveUniformSettings ( forTimelineRange: fadeOutTimeRange, trackID: item1. trackID)
47
+
41
48
let player = try MetalVideoProcessPlayer ( playerItem: playerItem)
42
49
player. playerDelegate = self
43
50
44
51
let background = MetalVideoProcessBackground ( trackID: 0 )
45
52
background. aspectRatioType = . Ratio9_16
46
53
background. canvasSizeType = . Type720p
47
- background. setBackgroundType ( type: . Black )
54
+ background. setBackgroundType ( type: . Blur )
48
55
49
56
let transform = MetalVideoProcessTransformFilter ( )
50
57
transform. saveUniformSettings ( forTimelineRange: item1. timeRange, trackID: item1. trackID)
51
- transform. roi = CGRect ( x: 0.25 , y: 0.25 , width: 0.5 , height: 0.5 )
52
-
58
+ transform. roi = CGRect ( x: 0.5 , y: 0.5 , width: 0.5 , height: 0.5 )
59
+ fadeIn . roi = transform . roi
53
60
player. addTarget ( background, atTargetIndex: 0 , trackID: item1. trackID, targetTrackId: 0 )
54
-
55
-
61
+
56
62
background --> fadeIn //source 0
57
63
player. addTarget ( transform, atTargetIndex: nil , trackID: item1. trackID, targetTrackId: 0 ) //source 1
58
64
59
- transform --> fadeIn --> renderView//source 1
60
-
65
+ transform --> fadeIn --> renderView //source 1
66
+
61
67
self . player = player
62
68
} catch {
63
69
@@ -74,6 +80,11 @@ class ViewController: UIViewController {
74
80
self . progressView. delegate = self
75
81
}
76
82
83
+ override func viewDidDisappear( _ animated: Bool ) {
84
+ self . player? . suspend ( )
85
+ self . player? . dispose ( )
86
+ }
87
+
77
88
@IBAction func play( _ sender: Any ) {
78
89
self . player? . play ( )
79
90
}
0 commit comments