@@ -8,169 +8,169 @@ import AVKit
88
99@objc ( RNTrimmerView)
1010class RNTrimmerView : RCTView , ICGVideoTrimmerDelegate {
11-
12- var trimmerView : ICGVideoTrimmerView ?
13- var asset : AVAsset !
14- var rect : CGRect = CGRect . zero
15- var mThemeColor = UIColor . clear
16- var bridge : RCTBridge !
17- var onChange : RCTBubblingEventBlock ?
18- var _minLength : CGFloat ? = nil
19- var _maxLength : CGFloat ? = nil
20- var _trackerColor : UIColor = UIColor . clear
21-
22- var source : NSString ? {
23- set {
24- setSource ( source: newValue)
25- }
26- get {
27-
28- return nil
29- }
30- }
31-
32- var height : NSNumber ? {
33- set {
34- self . rect. size. height = RCTConvert . cgFloat ( newValue)
35- self . updateView ( )
36- }
37- get {
38- return nil
39- }
40- }
41-
42- var width : NSNumber ? {
43- set {
44- self . rect. size. width = RCTConvert . cgFloat ( newValue)
45- self . updateView ( )
46- }
47- get {
48- return nil
49- }
50- }
51-
52- var themeColor : NSString ? {
53- set {
54- if newValue != nil {
55- let color = NumberFormatter ( ) . number ( from: newValue! as String )
56- self . mThemeColor = RCTConvert . uiColor ( color)
57- self . updateView ( )
58- }
59- }
60- get {
61- return nil
62- }
63- }
64-
65- var maxLength : NSNumber ? {
66- set {
67- if newValue != nil {
68- self . _maxLength = RCTConvert . cgFloat ( newValue!)
69- self . updateView ( )
70- }
71- }
72- get {
73- return nil
74- }
75- }
76-
77- var minLength : NSNumber ? {
78- set {
79- if newValue != nil {
80- self . _minLength = RCTConvert . cgFloat ( newValue!)
81- self . updateView ( )
82- }
11+
12+ var trimmerView : ICGVideoTrimmerView ?
13+ var asset : AVAsset !
14+ var rect : CGRect = CGRect . zero
15+ var mThemeColor = UIColor . clear
16+ var bridge : RCTBridge !
17+ var onChange : RCTBubblingEventBlock ?
18+ var _minLength : CGFloat ? = nil
19+ var _maxLength : CGFloat ? = nil
20+ var _trackerColor : UIColor = UIColor . clear
21+
22+ var source : NSString ? {
23+ set {
24+ setSource ( source: newValue)
25+ }
26+ get {
27+
28+ return nil
29+ }
30+ }
31+
32+ var height : NSNumber ? {
33+ set {
34+ self . rect. size. height = RCTConvert . cgFloat ( newValue)
35+ self . updateView ( )
36+ }
37+ get {
38+ return nil
39+ }
40+ }
41+
42+ var width : NSNumber ? {
43+ set {
44+ self . rect. size. width = RCTConvert . cgFloat ( newValue)
45+ self . updateView ( )
46+ }
47+ get {
48+ return nil
49+ }
50+ }
51+
52+ var themeColor : NSString ? {
53+ set {
54+ if newValue != nil {
55+ let color = NumberFormatter ( ) . number ( from: newValue! as String )
56+ self . mThemeColor = RCTConvert . uiColor ( color)
57+ self . updateView ( )
58+ }
59+ }
60+ get {
61+ return nil
62+ }
63+ }
64+
65+ var maxLength : NSNumber ? {
66+ set {
67+ if newValue != nil {
68+ self . _maxLength = RCTConvert . cgFloat ( newValue!)
69+ self . updateView ( )
70+ }
71+ }
72+ get {
73+ return nil
74+ }
75+ }
76+
77+ var minLength : NSNumber ? {
78+ set {
79+ if newValue != nil {
80+ self . _minLength = RCTConvert . cgFloat ( newValue!)
81+ self . updateView ( )
82+ }
83+ }
84+ get {
85+ return nil
86+ }
87+ }
88+
89+ var currentTime : NSNumber ? {
90+ set {
91+ print ( " CHANGED: [TrimmerView]: currentTime: \( newValue) " )
92+ if newValue != nil && self . trimmerView != nil {
93+ let convertedValue = newValue as! CGFloat
94+ self . trimmerView? . seek ( toTime: convertedValue)
95+ // self.trimmerView
96+ }
97+ }
98+ get {
99+ return nil
100+ }
101+ }
102+
103+ var trackerColor : NSString ? {
104+ set {
105+ if newValue == nil {
106+ return
107+ }
108+ if self . trimmerView == nil {
109+ return
110+ }
111+ let color = NumberFormatter ( ) . number ( from: newValue! as String )
112+ let formattedColor = RCTConvert . uiColor ( color)
113+ if formattedColor != nil {
114+ self . _trackerColor = formattedColor!
115+ self . updateView ( )
116+ }
117+ }
118+ get {
119+ return nil
120+ }
121+ }
122+
123+ func updateView( ) {
124+ self . frame = rect
125+ if trimmerView != nil {
126+ trimmerView!. frame = rect
127+ trimmerView!. themeColor = self . mThemeColor
128+ trimmerView!. trackerColor = self . _trackerColor
129+ trimmerView!. maxLength = _maxLength == nil ? CGFloat ( self . asset. duration. seconds) : _maxLength!
130+ if _minLength != nil {
131+ trimmerView!. minLength = _minLength!
132+ }
133+ self . trimmerView!. resetSubviews ( )
134+ // Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(self.updateTrimmer), userInfo: nil, repeats: false)
135+ }
136+ }
137+
138+ func updateTrimmer( ) {
139+ self . trimmerView!. resetSubviews ( )
140+ }
141+
142+ func setSource( source: NSString ? ) {
143+ if source != nil {
144+ let pathToSource = NSURL ( string: source! as String )
145+ self . asset = AVURLAsset ( url: pathToSource as! URL , options: nil )
146+
147+ trimmerView = ICGVideoTrimmerView ( frame: rect, asset: self . asset)
148+ trimmerView!. showsRulerView = false
149+ trimmerView!. hideTracker ( false )
150+ trimmerView!. delegate = self
151+ trimmerView!. trackerColor = self . _trackerColor
152+ self . addSubview ( trimmerView!)
153+ self . updateView ( )
154+ }
155+ }
156+
157+ init ( frame: CGRect , bridge: RCTBridge ) {
158+ super. init ( frame: frame)
159+ self . bridge = bridge
160+ }
161+
162+ required init ? ( coder aDecoder: NSCoder ) {
163+ fatalError ( " init(coder:) has not been implemented " )
164+ }
165+
166+ func onTrimmerPositionChange( startTime: CGFloat , endTime: CGFloat ) {
167+ if self . onChange != nil {
168+ let event = [ " startTime " : startTime, " endTime " : endTime]
169+ self . onChange!( event)
170+ }
171+ }
172+
173+ func trimmerView( _ trimmerView: ICGVideoTrimmerView , didChangeLeftPosition startTime: CGFloat , rightPosition endTime: CGFloat ) {
174+ onTrimmerPositionChange ( startTime: startTime, endTime: endTime)
83175 }
84- get {
85- return nil
86- }
87- }
88-
89- var currentTime : NSNumber ? {
90- set {
91- print ( " CHANGED: [TrimmerView]: currentTime: \( newValue) " )
92- if newValue != nil && self . trimmerView != nil {
93- let convertedValue = newValue as! CGFloat
94- self . trimmerView? . seek ( toTime: convertedValue)
95- // self.trimmerView
96- }
97- }
98- get {
99- return nil
100- }
101- }
102-
103- var trackerColor : NSString ? {
104- set {
105- if newValue == nil {
106- return
107- }
108- if self . trimmerView == nil {
109- return
110- }
111- let color = NumberFormatter ( ) . number ( from: newValue! as String )
112- let formattedColor = RCTConvert . uiColor ( color)
113- if formattedColor != nil {
114- self . _trackerColor = formattedColor!
115- self . updateView ( )
116- }
117- }
118- get {
119- return nil
120- }
121- }
122-
123- func updateView( ) {
124- self . frame = rect
125- if trimmerView != nil {
126- trimmerView!. frame = rect
127- trimmerView!. themeColor = self . mThemeColor
128- trimmerView!. trackerColor = self . _trackerColor
129- trimmerView!. maxLength = _maxLength == nil ? CGFloat ( self . asset. duration. seconds) : _maxLength!
130- if _minLength != nil {
131- trimmerView!. minLength = _minLength!
132- }
133- self . trimmerView!. resetSubviews ( )
134- Timer . scheduledTimer ( timeInterval: 0.5 , target: self , selector: #selector( self . updateTrimmer) , userInfo: nil , repeats: false )
135- }
136- }
137-
138- func updateTrimmer( ) {
139- self . trimmerView!. resetSubviews ( )
140- }
141-
142- func setSource( source: NSString ? ) {
143- if source != nil {
144- let pathToSource = NSURL ( string: source! as String )
145- self . asset = AVURLAsset ( url: pathToSource as! URL , options: nil )
146-
147- trimmerView = ICGVideoTrimmerView ( frame: rect, asset: self . asset)
148- trimmerView!. showsRulerView = false
149- trimmerView!. hideTracker ( false )
150- trimmerView!. delegate = self
151- trimmerView!. trackerColor = self . _trackerColor
152- self . addSubview ( trimmerView!)
153- self . updateView ( )
154- }
155- }
156-
157- init ( frame: CGRect , bridge: RCTBridge ) {
158- super. init ( frame: frame)
159- self . bridge = bridge
160- }
161-
162- required init ? ( coder aDecoder: NSCoder ) {
163- fatalError ( " init(coder:) has not been implemented " )
164- }
165-
166- func onTrimmerPositionChange( startTime: CGFloat , endTime: CGFloat ) {
167- if self . onChange != nil {
168- let event = [ " startTime " : startTime, " endTime " : endTime]
169- self . onChange!( event)
170- }
171- }
172-
173- func trimmerView( _ trimmerView: ICGVideoTrimmerView , didChangeLeftPosition startTime: CGFloat , rightPosition endTime: CGFloat ) {
174- onTrimmerPositionChange ( startTime: startTime, endTime: endTime)
175- }
176176}
0 commit comments