@nativescript/canvas-media 2.0.0-rc.2 → 2.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript/canvas-media",
3
- "version": "2.0.0-rc.2",
3
+ "version": "2.0.0-rc.21",
4
4
  "description": "Canvas media",
5
5
  "main": "index",
6
6
  "typings": "index.d.ts",
@@ -0,0 +1 @@
1
+ OTHER_LDFLAGS = $(inherited) -framework "AVFoundation" -framework "CoreMedia" -framework "AVKit"
@@ -0,0 +1,3 @@
1
+ #import "NSCPlayerState.h"
2
+ #import "NSCVideoHelper.h"
3
+ #import "NSCVideoHelperListener.h"
@@ -0,0 +1,23 @@
1
+ //
2
+ // NSCPlayerState.h
3
+ // CanvasMedia
4
+ //
5
+ // Created by Osei Fortune on 20/05/2025.
6
+ //
7
+ #import <Foundation/Foundation.h>
8
+
9
+ typedef NS_ENUM(NSUInteger, NSCPlayerState) {
10
+ NSCPlayerStateIdle = 0,
11
+ NSCPlayerStatePlaying = 1,
12
+ NSCPlayerStatePaused = 2,
13
+ NSCPlayerStateStopped = 3,
14
+ };
15
+
16
+
17
+ typedef NS_ENUM(NSUInteger, NSCPlayerReadyState) {
18
+ NSCPlayerReadyStateHaveNothing = 0,
19
+ NSCPlayerReadyStateHaveMetadata = 1,
20
+ NSCPlayerReadyStateHaveCurrentData = 2,
21
+ NSCPlayerReadyStateHaveFutureData = 3,
22
+ NSCPlayerReadyStateHaveEnoughData = 4,
23
+ };
@@ -0,0 +1,45 @@
1
+ //
2
+ // NSCVideoHelper.h
3
+ // CanvasMedia
4
+ //
5
+ // Created by Osei Fortune on 20/05/2025.
6
+ //
7
+ #import <Foundation/Foundation.h>
8
+ #import <AVKit/AVKit.h>
9
+ #import <AVFoundation/AVFoundation.h>
10
+ #import <UIKit/UIKit.h>
11
+ #import <CoreMedia/CoreMedia.h>
12
+
13
+ #import "NSCPlayerState.h"
14
+
15
+ @class NSCVideoHelper;
16
+
17
+ @protocol NSCVideoHelperListener <NSObject>
18
+ - (void)onVideoFrameCallback;
19
+ - (void)onTimeUpdate:(double)seconds;
20
+ - (void)onStateChange:(NSCPlayerState)state;
21
+ @end
22
+
23
+ @interface NSCVideoHelper : NSObject
24
+
25
+ @property (nonatomic, strong, readonly) AVPlayerViewController *controller;
26
+ @property (nonatomic, strong, readonly) AVPlayer *player;
27
+ @property (nonatomic, strong, readonly) AVPlayerItem *currentItem;
28
+ @property (nonatomic, readonly) BOOL isInForeground;
29
+ @property (nonatomic, readonly) NSCPlayerState state;
30
+ @property (nonatomic, readonly) NSCPlayerReadyState readyState;
31
+ @property (nonatomic, readonly) CGSize videoSize;
32
+ @property (nonatomic, strong, readonly) AVPlayerItemVideoOutput *assetOutput;
33
+ @property (nonatomic, weak) id<NSCVideoHelperListener> listener;
34
+ @property (nonatomic) BOOL isLoop;
35
+ @property (nonatomic) BOOL muted;
36
+ @property (nonatomic) BOOL controls;
37
+ @property (nonatomic) BOOL playsinline;
38
+ @property (nonatomic, copy) NSString *src;
39
+ @property (nonatomic, readonly) double duration;
40
+ @property (nonatomic) double currentTime;
41
+
42
+ - (void)play;
43
+ - (void)pause;
44
+
45
+ @end
@@ -0,0 +1,231 @@
1
+ //
2
+ // NSCVideoHelper.m
3
+ // CanvasMedia
4
+ //
5
+ // Created by Osei Fortune on 20/05/2025.
6
+ //
7
+ #import "NSCVideoHelper.h"
8
+
9
+ @interface NSCVideoHelper ()
10
+ @property (nonatomic, strong) AVURLAsset *asset;
11
+ @property (nonatomic, copy) NSString *currentSrc;
12
+ @property (nonatomic, strong) id playEndNotificationId;
13
+ @property (nonatomic, strong) id resumeListenerId;
14
+ @property (nonatomic, strong) id suspendListenerId;
15
+ @property (nonatomic, strong) id playbackFramesObserver;
16
+ @property (nonatomic, strong) id playbackTimeObserver;
17
+ @property (nonatomic, assign) NSCPlayerState state;
18
+ @property (nonatomic, assign) NSCPlayerReadyState readyState;
19
+ @property (nonatomic, assign) BOOL inForeground;
20
+ @end
21
+
22
+
23
+
24
+
25
+
26
+ @implementation NSCVideoHelper
27
+
28
+ - (instancetype)init {
29
+ if (self = [super init]) {
30
+ _controller = [[AVPlayerViewController alloc] init];
31
+ _player = [[AVPlayer alloc] init];
32
+ _inForeground = YES;
33
+ _readyState = NSCPlayerReadyStateHaveNothing;
34
+ _state = NSCPlayerStateIdle;
35
+ _controller.player = _player;
36
+
37
+ __weak typeof(self) weakSelf = self;
38
+ _suspendListenerId = [[NSNotificationCenter defaultCenter]
39
+ addObserverForName:UIApplicationDidEnterBackgroundNotification
40
+ object:nil queue:nil
41
+ usingBlock:^(NSNotification *note) {
42
+ weakSelf.inForeground = NO;
43
+ }];
44
+
45
+ _resumeListenerId = [[NSNotificationCenter defaultCenter]
46
+ addObserverForName:UIApplicationDidBecomeActiveNotification
47
+ object:nil queue:nil
48
+ usingBlock:^(NSNotification *note) {
49
+ weakSelf.inForeground = YES;
50
+ }];
51
+ }
52
+ return self;
53
+ }
54
+
55
+ -(BOOL) isInForeground {
56
+ return _inForeground;
57
+ }
58
+
59
+ - (void)setSrc:(NSString *)src {
60
+ _currentSrc = src;
61
+ _readyState = NSCPlayerReadyStateHaveNothing;
62
+
63
+ if (!src) return;
64
+
65
+ NSURL *url = [src hasPrefix:@"/"] ? [NSURL fileURLWithPath:src] : [NSURL URLWithString:src];
66
+ if (!url) return;
67
+
68
+ if (_playEndNotificationId) {
69
+ [[NSNotificationCenter defaultCenter] removeObserver:_playEndNotificationId];
70
+ _playEndNotificationId = nil;
71
+ }
72
+
73
+ self.asset = [AVURLAsset URLAssetWithURL:url options:nil];
74
+ NSArray *keys = @[@"duration", @"tracks", @"commonMetadata"];
75
+
76
+ __weak typeof(self) weakSelf = self;
77
+ [self.asset loadValuesAsynchronouslyForKeys:keys completionHandler:^{
78
+ dispatch_async(dispatch_get_main_queue(), ^{
79
+ __strong typeof(self) strongSelf = weakSelf;
80
+ if (!strongSelf) return;
81
+
82
+ AVAssetTrack *videoTrack = [[weakSelf.asset tracksWithMediaType:AVMediaTypeVideo] firstObject];
83
+ strongSelf->_videoSize = videoTrack.naturalSize;
84
+
85
+ float fps = videoTrack.nominalFrameRate ?: 30.0;
86
+ CMTime interval = CMTimeMake(1, (int32_t)fps);
87
+ weakSelf.playbackFramesObserver = [weakSelf.player addPeriodicTimeObserverForInterval:interval queue:nil usingBlock:^(CMTime time) {
88
+ if (weakSelf.state == NSCPlayerStatePlaying) {
89
+ [weakSelf.listener onVideoFrameCallback];
90
+ }
91
+ }];
92
+
93
+ AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:weakSelf.asset];
94
+ strongSelf->_currentItem = item;
95
+
96
+ NSDictionary *outputSettings = @{
97
+ (__bridge NSString *)kCVPixelBufferPixelFormatTypeKey: @(kCVPixelFormatType_32BGRA),
98
+ (__bridge NSString *)kCVPixelBufferOpenGLESCompatibilityKey: @YES,
99
+ (__bridge NSString *)kCVPixelBufferOpenGLCompatibilityKey: @YES
100
+ };
101
+
102
+ strongSelf->_assetOutput = [[AVPlayerItemVideoOutput alloc] initWithPixelBufferAttributes:outputSettings];
103
+
104
+ [item addObserver:weakSelf forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
105
+ [item addObserver:weakSelf forKeyPath:@"loadedTimeRanges" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial context:nil];
106
+
107
+ strongSelf->_playEndNotificationId = [[NSNotificationCenter defaultCenter]
108
+ addObserverForName:AVPlayerItemDidPlayToEndTimeNotification
109
+ object:item queue:nil usingBlock:^(NSNotification *note) {
110
+ if (weakSelf.isLoop) {
111
+ [weakSelf.player seekToTime:kCMTimeZero];
112
+ [weakSelf.player play];
113
+ weakSelf.state = NSCPlayerStatePlaying;
114
+ [weakSelf.listener onStateChange:NSCPlayerStatePlaying];
115
+ }
116
+ }];
117
+
118
+ [weakSelf.player replaceCurrentItemWithPlayerItem:item];
119
+ weakSelf.readyState = NSCPlayerReadyStateHaveMetadata;
120
+ if (weakSelf.isLoop) {
121
+ [weakSelf play];
122
+ }
123
+ });
124
+ }];
125
+ }
126
+
127
+ - (NSString *)src {
128
+ return _currentSrc;
129
+ }
130
+
131
+ - (void)observeValueForKeyPath:(NSString *)keyPath
132
+ ofObject:(id)object
133
+ change:(NSDictionary<NSKeyValueChangeKey,id> *)change
134
+ context:(void *)context {
135
+
136
+ if ([keyPath isEqualToString:@"status"]) {
137
+ if (self.player.currentItem.status == AVPlayerItemStatusReadyToPlay) {
138
+ self->_videoSize = [[self.asset tracksWithMediaType:AVMediaTypeVideo] firstObject].naturalSize;
139
+ [self.player.currentItem addOutput:self.assetOutput];
140
+ }
141
+ }
142
+ }
143
+
144
+ - (double)duration {
145
+ if (!_currentItem) return NAN;
146
+ return CMTimeGetSeconds(_currentItem.asset.duration);
147
+ }
148
+
149
+ - (double)currentTime {
150
+ return CMTimeGetSeconds(self.player.currentTime);
151
+ }
152
+
153
+ - (void)setCurrentTime:(double)currentTime {
154
+ CMTime time = CMTimeMakeWithSeconds(currentTime, self.player.currentTime.timescale);
155
+ [self.player seekToTime:time];
156
+ }
157
+
158
+ - (BOOL)controls {
159
+ return self.controller.showsPlaybackControls;
160
+ }
161
+
162
+ - (void)setControls:(BOOL)controls {
163
+ self.controller.showsPlaybackControls = controls;
164
+ }
165
+
166
+ - (BOOL)muted {
167
+ return self.player.muted;
168
+ }
169
+
170
+ - (void)setMuted:(BOOL)muted {
171
+ self.player.muted = muted;
172
+ }
173
+
174
+ - (BOOL)playsinline {
175
+ return !self.controller.entersFullScreenWhenPlaybackBegins;
176
+ }
177
+
178
+ - (void)setPlaysinline:(BOOL)playsinline {
179
+ self.controller.entersFullScreenWhenPlaybackBegins = !playsinline;
180
+ }
181
+
182
+ - (void)play {
183
+ if (self.state == NSCPlayerStatePlaying) return;
184
+ [self addTimeObserver];
185
+ [self.player play];
186
+ self.state = NSCPlayerStatePlaying;
187
+ [self.listener onStateChange:self.state];
188
+ }
189
+
190
+ - (void)addTimeObserver {
191
+ CMTime interval = CMTimeMake(1, 1);
192
+ __weak typeof(self) weakSelf = self;
193
+ self.playbackTimeObserver = [self.player addPeriodicTimeObserverForInterval:interval queue:nil usingBlock:^(CMTime time) {
194
+ if (weakSelf.state == NSCPlayerStatePlaying) {
195
+ [weakSelf.listener onTimeUpdate:CMTimeGetSeconds(time)];
196
+ }
197
+ }];
198
+ }
199
+
200
+ - (void)pause {
201
+ if (self.state != NSCPlayerStatePlaying) return;
202
+ if (self.playbackTimeObserver) {
203
+ [self.player removeTimeObserver:self.playbackTimeObserver];
204
+ self.playbackTimeObserver = nil;
205
+ }
206
+ [self.player pause];
207
+ self.state = NSCPlayerStatePaused;
208
+ [self.listener onStateChange:self.state];
209
+ }
210
+
211
+ - (void)dealloc {
212
+ if (self.state == NSCPlayerStatePlaying) {
213
+ [self.player pause];
214
+ self.state = NSCPlayerStateStopped;
215
+ [self.listener onStateChange:self.state];
216
+ }
217
+
218
+ if (_playEndNotificationId) {
219
+ [[NSNotificationCenter defaultCenter] removeObserver:_playEndNotificationId];
220
+ }
221
+
222
+ if (_resumeListenerId) {
223
+ [[NSNotificationCenter defaultCenter] removeObserver:_resumeListenerId];
224
+ }
225
+
226
+ if (_suspendListenerId) {
227
+ [[NSNotificationCenter defaultCenter] removeObserver:_suspendListenerId];
228
+ }
229
+ }
230
+
231
+ @end
@@ -0,0 +1,21 @@
1
+ //
2
+ // NSCVideoHelperListener.h
3
+ // CanvasMedia
4
+ //
5
+ // Created by Osei Fortune on 20/05/2025.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+ #import "NSCPlayerState.h"
10
+
11
+ NS_ASSUME_NONNULL_BEGIN
12
+
13
+ @protocol NSCVideoHelperListener <NSObject>
14
+
15
+ - (void)onStateChange:(NSCPlayerState)state;
16
+ - (void)onTimeUpdate:(double)time;
17
+ - (void)onVideoFrameCallback;
18
+
19
+ @end
20
+
21
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,5 @@
1
+ module NSCCanvasMedia {
2
+ umbrella header "NSCCanvasMediaUmbrella.h"
3
+ export *
4
+ module * { export * }
5
+ }
@@ -66,8 +66,9 @@ export class Video extends VideoBase {
66
66
  }
67
67
  getCurrentFrame(context) {
68
68
  const ctx = arguments[1];
69
- const flipY = ctx._flipY;
70
- const ptr = ctx._canvas._canvas.getNativeGL();
69
+ //@ts-ignore
70
+ const flipY = context?.__flipY ?? false;
71
+ const ptr = ctx._canvas._canvas.getNativeContext();
71
72
  this._instance.getCurrentFrame(!!this.isLoaded, ptr, flipY, arguments[4], arguments[5]);
72
73
  }
73
74
  play() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3I,OAAO,EAAE,MAAM,EAAE,WAAW,EAAS,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,MAAM,OAAO,KAAM,SAAQ,SAAS;IAiBnC;QACC,KAAK,EAAE,CAAC;QAhBT,gBAAW,GAAa,EAAE,CAAC;QAK3B,cAAS,GAAY,KAAK,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAE1B,gBAAW,GAAW,CAAC,CAAC;QACxB,gBAAW,GAAG,CAAC,CAAC;QAChB,iBAAY,GAAG,CAAC,CAAC;QAOhB,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;QAEf,MAAM,QAAQ,GAA6C,WAAW,CAAC,OAAO,CAAC,kBAAkB,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;QAEvI,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QAExG,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,SAAS,CAAC,WAAW,CACzB,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;YACtD,gBAAgB,CAAC,QAAQ;gBACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBACpD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;YAED,SAAS;gBACR,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;YAED,kBAAkB,CAAC,KAAK,EAAE,MAAM;gBAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;oBAC1B,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC7B,CAAC;YACF,CAAC;YAED,oBAAoB,CAAC,IAAI;gBACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACnD,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;YAED,YAAY;gBACX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;gBACxB,IAAI,KAAK,EAAE,CAAC;oBACX,KAAK,CAAC,0BAA0B,EAAE,CAAC;gBACpC,CAAC;YACF,CAAC;SACD,CAAC,CACF,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,gBAAgB;QACtB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,eAAe,CAAC,OAA+B;QAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAQ,CAAC;QAChC,YAAY;QACZ,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEnD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,KAAc;QACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,CAAC,KAAa;QAC5B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,KAAa;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QAC1B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ,CAAC,OAAgB;QAC5B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;IACb,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,KAAc;QACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,cAAc;QACb,KAAK,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,KAAU;QAC5C,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,QAAQ;QACP,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,CAAC;IACF,CAAC;IAED,aAAa;IACb,IAAI,KAAK;QACR,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,aAAa;IACb,IAAI,MAAM;QACT,IAAI,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACf,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,YAAY;YACZ,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAClI,OAAO;YACR,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO;YACR,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;;AApNc,cAAQ,GAAG,KAAK,AAAR,CAAS;AACzB,eAAS,GAAG,GAAG,AAAN,CAAO;AAChB,cAAQ,GAAG,KAAK,AAAR,CAAS"}
@@ -68,12 +68,14 @@ export class Video extends VideoBase {
68
68
  return this.helper.readyState;
69
69
  }
70
70
  getCurrentFrame(context) {
71
- if (!this.helper.isInForground) {
71
+ //@ts-ignore
72
+ const flipY = context?.__flipY ?? false;
73
+ if (!this.helper.isInForeground) {
72
74
  return;
73
75
  }
74
76
  if (this.helper.assetOutput) {
75
77
  try {
76
- NSCCanvasUtils.drawFrame(this.helper.player, this.helper.assetOutput, this.helper.videoSize, arguments[4], arguments[5], false);
78
+ NSCCanvasUtils.drawFrame(this.helper.player, this.helper.assetOutput, this.helper.videoSize, arguments[4], arguments[5], flipY);
77
79
  }
78
80
  catch (e) {
79
81
  if (Video.IS_DEBUG) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/index.ios.ts"],"names":[],"mappings":"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"}
@@ -1,359 +0,0 @@
1
- //
2
- // NSCVideoHelper.swift
3
- // CanvasMedia
4
- // Created by Osei Fortune on 27/08/24.
5
- //
6
-
7
- import Foundation
8
- import UIKit
9
- import AVKit
10
- import AVFoundation
11
-
12
- // #if canImport(Combine)
13
- // import Combine
14
- // #endif
15
-
16
- @objc(NSCPlayerState)
17
- public enum NSCPlayerState: Int, RawRepresentable {
18
- public typealias RawValue = UInt32
19
- case Idle
20
- case Playing
21
- case Paused
22
- case Stopped
23
-
24
- public var rawValue: RawValue {
25
- switch self {
26
- case .Idle:
27
- return 0
28
- case .Playing:
29
- return 1
30
- case .Paused:
31
- return 2
32
- case .Stopped:
33
- return 3
34
- }
35
- }
36
-
37
- public init?(rawValue: RawValue) {
38
- switch rawValue {
39
- case 0:
40
- self = .Idle
41
- case 1:
42
- self = .Playing
43
- case 2:
44
- self = .Paused
45
- case 3:
46
- self = .Stopped
47
- default:
48
- return nil
49
- }
50
- }
51
-
52
- }
53
-
54
- @objc(NSCPlayerReadyState)
55
- public enum NSCPlayerReadyState:Int, RawRepresentable {
56
- public typealias RawValue = UInt32
57
- case HAVE_NOTHING
58
- case HAVE_METADATA
59
- case HAVE_CURRENT_DATA
60
- case HAVE_FUTURE_DATA
61
- case HAVE_ENOUGH_DATA
62
-
63
-
64
- public var rawValue: RawValue {
65
- switch self {
66
- case .HAVE_NOTHING:
67
- return 0
68
- case .HAVE_METADATA:
69
- return 1
70
- case .HAVE_CURRENT_DATA:
71
- return 2
72
- case .HAVE_FUTURE_DATA:
73
- return 3
74
- case .HAVE_ENOUGH_DATA:
75
- return 4
76
- }
77
- }
78
-
79
- public init?(rawValue: RawValue) {
80
- switch rawValue {
81
- case 0:
82
- self = .HAVE_NOTHING
83
- case 1:
84
- self = .HAVE_METADATA
85
- case 2:
86
- self = .HAVE_CURRENT_DATA
87
- case 3:
88
- self = .HAVE_FUTURE_DATA
89
- case 4:
90
- self = .HAVE_ENOUGH_DATA
91
- default:
92
- return nil
93
- }
94
- }
95
- }
96
-
97
-
98
-
99
- @objcMembers
100
- @objc(NSCVideoHelper)
101
- public class NSCVideoHelper: NSObject {
102
- public let controller = AVPlayerViewController()
103
- public let player = AVPlayer()
104
- private (set) public var currentItem: AVPlayerItem? = nil
105
- private var currentSrc: String? = nil
106
- private(set) public var state: NSCPlayerState = .Idle
107
- private var asset: AVURLAsset? = nil
108
- private(set) var videoSize: CGSize = .zero
109
- private(set) var assetOutput: AVPlayerItemVideoOutput? = nil
110
- private(set) var readyState: NSCPlayerReadyState = .HAVE_NOTHING
111
- var listener: NSCVideoHelperListener? = nil
112
- private(set) var isInForground = true
113
- public override init(){
114
- super.init()
115
- suspendListenerId = NotificationCenter.default.addObserver(forName:UIApplication.didEnterBackgroundNotification , object: nil, queue: nil) { noti in
116
- self.isInForground = false
117
- }
118
-
119
- resumeListenerId = NotificationCenter.default.addObserver(forName:UIApplication.didBecomeActiveNotification , object: nil, queue: nil) { noti in
120
- self.isInForground = true
121
- }
122
-
123
- controller.player = player
124
- }
125
-
126
- public override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
127
- if (keyPath == "status") {
128
- if(player.currentItem?.status == .failed){
129
- // let baseError = player.currentItem. .userInfo.objectForKey(NSUnderlyingErrorKey);
130
- }else if(player.currentItem?.status == .readyToPlay){
131
- videoSize = asset?.tracks(withMediaType: .video).first?.naturalSize ?? .zero
132
- player.currentItem?.add(assetOutput!)
133
- }
134
- } else if (keyPath == "loadedTimeRanges") {
135
-
136
- // let playerItem = object as? AVPlayerItem
137
- // guard let playerItem = playerItem else {return}
138
- // let ranges = playerItem.loadedTimeRanges
139
- // guard let first = ranges.first else {return}
140
-
141
- // let loaded = first.CMTimeRangeValue.duration.value / first.CMTimeRangeValue.duration.timescale
142
- // let total = playerItem.duration.value / playerItem.duration.timescale
143
- // console.log('loaded', loaded / total);
144
- }
145
- }
146
-
147
- public var controls: Bool {
148
- get {
149
- return controller.showsPlaybackControls
150
- }
151
- set {
152
- controller.showsPlaybackControls = newValue
153
- }
154
- }
155
-
156
- public var muted: Bool {
157
- get {
158
- return player.isMuted
159
- }
160
-
161
- set {
162
- player.isMuted = newValue
163
- }
164
- }
165
-
166
- public var duration: Double {
167
- get {
168
- guard let currentItem = currentItem else {return .nan}
169
-
170
- return CMTimeGetSeconds(currentItem.asset.duration)
171
- }
172
- }
173
-
174
- public var currentTime: Double {
175
- get {
176
- return CMTimeGetSeconds(player.currentTime())
177
- }
178
-
179
- set {
180
- let time = CMTime(seconds: newValue, preferredTimescale: player.currentTime().timescale)
181
- player.seek(to: time)
182
- }
183
- }
184
-
185
- public var isLoop: Bool = false
186
-
187
- public var playsinline: Bool {
188
- get {
189
- return !controller.entersFullScreenWhenPlaybackBegins
190
- }
191
- set {
192
- controller.entersFullScreenWhenPlaybackBegins = !newValue
193
- }
194
- }
195
-
196
- private var playEndNotificationId: Any?
197
- private var resumeListenerId: Any?
198
- private var suspendListenerId: Any?
199
- // private var cancellables = Set<AnyCancellable>()
200
- public var src: String? {
201
- get {
202
- return currentSrc
203
- }
204
-
205
- set {
206
- guard let src = newValue else {
207
- readyState = .HAVE_NOTHING
208
- return
209
- }
210
- var url: URL?
211
- if(src.starts(with: "/")){
212
- url = URL(fileURLWithPath: src)
213
- }else {
214
- url = URL(string: src)
215
- }
216
- guard let url = url else {
217
- readyState = .HAVE_NOTHING
218
- return
219
- }
220
-
221
- if(playEndNotificationId != nil){
222
- NotificationCenter.default.removeObserver(playEndNotificationId!)
223
- playEndNotificationId = nil
224
- }
225
- asset = AVURLAsset(url: url)
226
-
227
- // var cancellables = Set<AnyCancellable>()
228
-
229
- let keys = ["duration", "tracks", "commonMetadata"]
230
-
231
-
232
-
233
- // let publishers = keys.map { key in
234
- // asset.publisher(for: \.statusOfValue(forKey: key, error: nil))
235
- // }
236
- //
237
- // Publishers.Zip3(publishers[0], publishers[1], publishers[2])
238
- // .sink { completion in
239
- // // Handle completion
240
- // } receiveValue: { status1, status2, status3 in
241
- // // Handle loaded values for all three keys
242
- // }
243
- // .store(in: &cancellables)
244
- //
245
- //
246
-
247
- asset?.loadValuesAsynchronously(forKeys: keys, completionHandler: { [self] in
248
- videoSize = asset?.tracks(withMediaType: .video).first?.naturalSize ?? .zero
249
-
250
- let fps = asset?.tracks.first?.nominalFrameRate ?? 30
251
- let interval = CMTimeMake(value: 1, timescale: Int32(fps))
252
-
253
- playbackFramesObserver = player.addPeriodicTimeObserver(forInterval: interval, queue: nil, using: { currentTime in
254
- if(self.state == .Playing){
255
- self.listener?.onVideoFrameCallback()
256
- }
257
- })
258
-
259
- currentItem = AVPlayerItem(asset: asset!)
260
-
261
- guard let currentItem = currentItem else {
262
- readyState = .HAVE_NOTHING
263
- currentSrc = nil
264
- return
265
- }
266
-
267
- let attributes: [String: Any] = [
268
- kCVPixelBufferPixelFormatTypeKey as String: NSNumber(value: kCVPixelFormatType_32BGRA),
269
- kCVPixelBufferOpenGLESCompatibilityKey as String : NSNumber(value: true),
270
- kCVPixelBufferOpenGLCompatibilityKey as String : NSNumber(value: true)
271
- ]
272
-
273
- assetOutput = AVPlayerItemVideoOutput(outputSettings: attributes)
274
-
275
- currentItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status),options: .new,context: nil)
276
-
277
- currentItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.loadedTimeRanges),options: [.initial, .new] ,context: nil)
278
-
279
- playEndNotificationId = NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: currentItem, queue: nil, using: { notfi in
280
- if (self.isLoop) {
281
- self.player.seek(to: .zero)
282
- self.player.play()
283
- self.state = .Playing
284
- self.listener?.onStateChange(.Playing)
285
- }
286
- })
287
-
288
-
289
- player.replaceCurrentItem(with: currentItem)
290
-
291
- readyState = .HAVE_METADATA
292
- currentSrc = src
293
- if (isLoop) {
294
- play()
295
- }
296
- })
297
-
298
- }
299
- }
300
-
301
- private var playbackFramesObserver: Any? = nil
302
- private var playbackTimeObserver: Any? = nil
303
- private func addTimeObserver() {
304
- let interval = CMTimeMake(value: 1, timescale: 1)
305
- player.addPeriodicTimeObserver(forInterval: interval, queue: nil) { currentTime in
306
- if(self.state == .Playing){
307
- let seconds = CMTimeGetSeconds(currentTime)
308
- self.listener?.onTimeUpdate(seconds)
309
- }
310
- }
311
- }
312
-
313
-
314
- public func play(){
315
- if(state == .Playing){
316
- return
317
- }
318
- addTimeObserver()
319
- player.play()
320
- state = .Playing
321
- listener?.onStateChange(.Playing)
322
- }
323
-
324
-
325
- public func pause() {
326
- if (state != .Playing) {
327
- return
328
- }
329
- guard let playbackTimeObserver = playbackTimeObserver else {return}
330
- player.removeTimeObserver(playbackTimeObserver)
331
- self.playbackTimeObserver = nil
332
- player.pause()
333
- state = .Paused
334
- listener?.onStateChange(.Paused)
335
- }
336
-
337
- deinit {
338
- if(state == .Playing){
339
- player.pause()
340
- state = .Stopped
341
- listener?.onStateChange(.Stopped)
342
- }
343
-
344
- if(playEndNotificationId != nil){
345
- NotificationCenter.default.removeObserver(playEndNotificationId!)
346
- playEndNotificationId = nil
347
- }
348
-
349
- if(resumeListenerId != nil){
350
- NotificationCenter.default.removeObserver(resumeListenerId!)
351
- resumeListenerId = nil
352
- }
353
-
354
- if(suspendListenerId != nil){
355
- NotificationCenter.default.removeObserver(suspendListenerId!)
356
- suspendListenerId = nil
357
- }
358
- }
359
- }
@@ -1,14 +0,0 @@
1
- //
2
- // NSCVideoHelperListener.swift
3
- // CanvasMedia
4
- //
5
- // Created by Osei Fortune on 28/08/2024.
6
- //
7
-
8
- import Foundation
9
- @objc(NSCVideoHelperListener)
10
- public protocol NSCVideoHelperListener {
11
- func onStateChange(_ state: NSCPlayerState)
12
- func onTimeUpdate(_ time: Double)
13
- func onVideoFrameCallback()
14
- }