@nativescript/canvas-media 2.0.0-webgpu.4 → 2.0.0-webgpu.41
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/audio/common.d.ts +1 -2
- package/audio/common.js +1 -2
- package/audio/common.js.map +1 -1
- package/common.d.ts +1 -2
- package/common.js +1 -2
- package/common.js.map +1 -1
- package/package.json +1 -1
- package/platforms/android/canvas_media.aar +0 -0
- package/platforms/ios/src/NSCVideoHelper.swift +359 -0
- package/platforms/ios/src/NSCVideoHelperListener.swift +14 -0
- package/video/common.d.ts +1 -2
- package/video/common.js +1 -3
- package/video/common.js.map +1 -1
- package/video/index.ios.d.ts +7 -20
- package/video/index.ios.js +403 -216
- package/video/index.ios.js.map +1 -1
package/audio/common.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AddChildFromBuilder, ContentView } from '@nativescript/core';
|
|
2
|
-
import { Property } from '@nativescript/core/ui/core/view';
|
|
1
|
+
import { AddChildFromBuilder, ContentView, Property } from '@nativescript/core';
|
|
3
2
|
export declare abstract class AudioBase extends ContentView implements AddChildFromBuilder {
|
|
4
3
|
controls: boolean;
|
|
5
4
|
loop: boolean;
|
package/audio/common.js
CHANGED
|
@@ -4,8 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { booleanConverter, ContentView } from '@nativescript/core';
|
|
8
|
-
import { Property, CSSType } from '@nativescript/core/ui/core/view';
|
|
7
|
+
import { booleanConverter, ContentView, Property, CSSType } from '@nativescript/core';
|
|
9
8
|
let AudioBase = class AudioBase extends ContentView {
|
|
10
9
|
};
|
|
11
10
|
AudioBase = __decorate([
|
package/audio/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/canvas-media/audio/common.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAuB,gBAAgB,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/canvas-media/audio/common.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAuB,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpG,IAAe,SAAS,GAAxB,MAAe,SAAU,SAAQ,WAAW;CAIlD,CAAA;AAJqB,SAAS;IAD9B,OAAO,CAAC,OAAO,CAAC;GACK,SAAS,CAI9B;;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAAqB;IAChE,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,KAAK;CACnB,CAAC,CAAC;AACH,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAqB;IAC5D,IAAI,EAAE,MAAM;IACZ,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAAqB;IAChE,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,KAAK;CACnB,CAAC,CAAC;AAEH,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC"}
|
package/common.d.ts
CHANGED
package/common.js
CHANGED
package/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../packages/canvas-media/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../packages/canvas-media/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,MAAO,SAAQ,IAAI;CAG/B;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAiB;IACvD,IAAI,EAAE,KAAK;CACX,CAAC,CAAC;AAEH,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAiB;IACxD,IAAI,EAAE,MAAM;CACZ,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1,359 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
}
|
package/video/common.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AddChildFromBuilder, ContentView } from '@nativescript/core';
|
|
2
|
-
import { Property } from '@nativescript/core/ui/core/view';
|
|
1
|
+
import { AddChildFromBuilder, ContentView, Property } from '@nativescript/core';
|
|
3
2
|
export declare abstract class VideoBase extends ContentView implements AddChildFromBuilder {
|
|
4
3
|
abstract controls: boolean;
|
|
5
4
|
loop: boolean;
|
package/video/common.js
CHANGED
|
@@ -4,9 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { Screen, Application, booleanConverter, ContentView, Utils } from '@nativescript/core';
|
|
8
|
-
import { Property, CSSType } from '@nativescript/core/ui/core/view';
|
|
9
|
-
import { PercentLength } from '@nativescript/core/ui/styling/style-properties';
|
|
7
|
+
import { Screen, Application, booleanConverter, ContentView, Utils, Property, CSSType, PercentLength } from '@nativescript/core';
|
|
10
8
|
let VideoBase = class VideoBase extends ContentView {
|
|
11
9
|
constructor() {
|
|
12
10
|
super(...arguments);
|
package/video/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/common.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAuB,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/canvas-media/video/common.ts"],"names":[],"mappings":"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"}
|
package/video/index.ios.d.ts
CHANGED
|
@@ -1,33 +1,23 @@
|
|
|
1
1
|
import { VideoBase } from './common';
|
|
2
|
+
import { Source } from '../common';
|
|
2
3
|
export declare class Video extends VideoBase {
|
|
3
|
-
|
|
4
|
+
helper: any;
|
|
5
|
+
_sourceView: Source[];
|
|
6
|
+
private listener;
|
|
4
7
|
_isCustom: boolean;
|
|
5
|
-
_readyState: number;
|
|
6
|
-
_resumeListenerId: any;
|
|
7
|
-
_suspendListenerId: any;
|
|
8
8
|
_isInForground: boolean;
|
|
9
|
-
_assetOutput: AVPlayerItemVideoOutput;
|
|
10
|
-
_isPlaying: boolean;
|
|
11
|
-
_playEndNotificationId: any;
|
|
12
|
-
_playbackTimeObserver: any;
|
|
13
|
-
_playbackFramesObserver: any;
|
|
14
|
-
_currentUrl: string;
|
|
15
|
-
_fps: number;
|
|
16
9
|
_ctx: any;
|
|
17
|
-
_asset: AVURLAsset;
|
|
18
|
-
_videoSize: any;
|
|
19
|
-
_render: any;
|
|
20
10
|
static IS_DEBUG: boolean;
|
|
21
|
-
get _player():
|
|
11
|
+
get _player(): any;
|
|
22
12
|
constructor();
|
|
23
13
|
static createCustomView(): Video;
|
|
24
|
-
get readyState():
|
|
14
|
+
get readyState(): any;
|
|
25
15
|
getCurrentFrame(context: any): void;
|
|
26
16
|
createNativeView(): Object;
|
|
27
17
|
initNativeView(): void;
|
|
28
18
|
_addChildFromBuilder(name: string, value: any): void;
|
|
29
19
|
onLoaded(): void;
|
|
30
|
-
get duration():
|
|
20
|
+
get duration(): any;
|
|
31
21
|
get currentTime(): number;
|
|
32
22
|
set currentTime(value: number);
|
|
33
23
|
get muted(): boolean;
|
|
@@ -36,11 +26,8 @@ export declare class Video extends VideoBase {
|
|
|
36
26
|
set src(value: string);
|
|
37
27
|
get controls(): boolean;
|
|
38
28
|
set controls(enabled: boolean);
|
|
39
|
-
private _addTimeObserver;
|
|
40
|
-
private _loadSrc;
|
|
41
29
|
play(): void;
|
|
42
30
|
pause(): void;
|
|
43
|
-
_destroy(): void;
|
|
44
31
|
private static get rootViewController();
|
|
45
32
|
private get topViewController();
|
|
46
33
|
private findTopViewController;
|