@granite-js/video 1.0.7 → 1.0.8
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/CHANGELOG.md +7 -0
- package/android/src/main/java/run/granite/video/GraniteVideoView.kt +129 -2
- package/android/src/main/java/run/granite/video/GraniteVideoViewManager.kt +3 -1
- package/android/src/main/java/run/granite/video/provider/GraniteVideoProvider.kt +64 -2
- package/dist/module/GraniteVideo.js +32 -6
- package/dist/module/GraniteVideo.js.map +1 -1
- package/dist/module/GraniteVideoNativeComponent.ts +81 -0
- package/dist/module/types.js +44 -1
- package/dist/module/types.js.map +1 -1
- package/dist/typescript/GraniteVideoNativeComponent.d.ts +67 -0
- package/dist/typescript/types.d.ts +41 -2
- package/package.json +1 -1
- package/src/GraniteVideo.tsx +27 -5
- package/src/GraniteVideoNativeComponent.ts +81 -0
- package/src/types.ts +50 -2
package/CHANGELOG.md
CHANGED
|
@@ -66,16 +66,34 @@ class GraniteVideoView @JvmOverloads constructor(
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
// Source
|
|
69
|
+
@Suppress("UNCHECKED_CAST")
|
|
69
70
|
fun setSource(source: Map<String, Any>?) {
|
|
70
71
|
source ?: return
|
|
71
72
|
|
|
73
|
+
val headers = source["headers"] as? Map<String, String>
|
|
74
|
+
|
|
72
75
|
val videoSource = GraniteVideoSource(
|
|
73
76
|
uri = source["uri"] as? String,
|
|
74
77
|
type = source["type"] as? String,
|
|
75
78
|
startPosition = (source["startPosition"] as? Number)?.toDouble() ?: 0.0,
|
|
76
79
|
cropStart = (source["cropStart"] as? Number)?.toDouble() ?: 0.0,
|
|
77
80
|
cropEnd = (source["cropEnd"] as? Number)?.toDouble() ?: 0.0,
|
|
78
|
-
headers =
|
|
81
|
+
headers = headers,
|
|
82
|
+
drm = parseDrm(source["drm"] as? Map<String, Any>),
|
|
83
|
+
isNetwork = source["isNetwork"] as? Boolean,
|
|
84
|
+
isAsset = source["isAsset"] as? Boolean ?: false,
|
|
85
|
+
isLocalAssetFile = source["isLocalAssetFile"] as? Boolean ?: false,
|
|
86
|
+
shouldCache = source["shouldCache"] as? Boolean ?: true,
|
|
87
|
+
mainVer = (source["mainVer"] as? Number)?.toInt() ?: 0,
|
|
88
|
+
patchVer = (source["patchVer"] as? Number)?.toInt() ?: 0,
|
|
89
|
+
contentStartTime = (source["contentStartTime"] as? Number)?.toDouble() ?: -1.0,
|
|
90
|
+
minLoadRetryCount = (source["minLoadRetryCount"] as? Number)?.toInt() ?: 3,
|
|
91
|
+
textTracksAllowChunklessPreparation = source["textTracksAllowChunklessPreparation"] as? Boolean ?: true,
|
|
92
|
+
metadata = parseMetadata(source["metadata"] as? Map<String, Any>),
|
|
93
|
+
cmcd = parseCmcd(source["cmcd"] as? Map<String, Any>),
|
|
94
|
+
textTracks = parseTextTracks(source["textTracks"] as? List<Map<String, Any>>),
|
|
95
|
+
ad = parseAdsConfig(source["ad"] as? Map<String, Any>),
|
|
96
|
+
bufferConfig = parseBufferConfig(source["bufferConfig"] as? Map<String, Any>)
|
|
79
97
|
)
|
|
80
98
|
|
|
81
99
|
provider?.loadSource(videoSource)
|
|
@@ -85,6 +103,99 @@ class GraniteVideoView @JvmOverloads constructor(
|
|
|
85
103
|
}
|
|
86
104
|
}
|
|
87
105
|
|
|
106
|
+
// Source parsing helper methods
|
|
107
|
+
|
|
108
|
+
private fun parseDrm(map: Map<String, Any>?): GraniteVideoDrmConfig? {
|
|
109
|
+
map ?: return null
|
|
110
|
+
val typeStr = map["type"] as? String
|
|
111
|
+
val drmType = when (typeStr) {
|
|
112
|
+
"widevine" -> GraniteVideoDrmType.WIDEVINE
|
|
113
|
+
"playready" -> GraniteVideoDrmType.PLAYREADY
|
|
114
|
+
"clearkey" -> GraniteVideoDrmType.CLEARKEY
|
|
115
|
+
else -> GraniteVideoDrmType.NONE
|
|
116
|
+
}
|
|
117
|
+
val headers = map["headers"] as? Map<String, String>
|
|
118
|
+
return GraniteVideoDrmConfig(
|
|
119
|
+
type = drmType,
|
|
120
|
+
licenseServer = map["licenseServer"] as? String,
|
|
121
|
+
headers = headers,
|
|
122
|
+
contentId = map["contentId"] as? String
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
private fun parseMetadata(map: Map<String, Any>?): GraniteVideoMetadata? {
|
|
127
|
+
map ?: return null
|
|
128
|
+
return GraniteVideoMetadata(
|
|
129
|
+
title = map["title"] as? String,
|
|
130
|
+
subtitle = map["subtitle"] as? String,
|
|
131
|
+
description = map["description"] as? String,
|
|
132
|
+
artist = map["artist"] as? String,
|
|
133
|
+
imageUri = map["imageUri"] as? String
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
private fun parseCmcd(map: Map<String, Any>?): GraniteVideoCmcdConfig? {
|
|
138
|
+
map ?: return null
|
|
139
|
+
return GraniteVideoCmcdConfig(
|
|
140
|
+
mode = (map["mode"] as? Number)?.toInt() ?: 1,
|
|
141
|
+
request = map["request"] as? Map<String, String>,
|
|
142
|
+
session = map["session"] as? Map<String, String>,
|
|
143
|
+
obj = map["object"] as? Map<String, String>,
|
|
144
|
+
status = map["status"] as? Map<String, String>
|
|
145
|
+
)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
private fun parseTextTracks(list: List<Map<String, Any>>?): List<GraniteVideoTextTrack>? {
|
|
149
|
+
list ?: return null
|
|
150
|
+
return list.map { item ->
|
|
151
|
+
GraniteVideoTextTrack(
|
|
152
|
+
title = item["title"] as? String ?: "",
|
|
153
|
+
language = item["language"] as? String ?: "",
|
|
154
|
+
type = item["type"] as? String ?: "",
|
|
155
|
+
uri = item["uri"] as? String ?: ""
|
|
156
|
+
)
|
|
157
|
+
}.ifEmpty { null }
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private fun parseAdsConfig(map: Map<String, Any>?): GraniteVideoAdsConfig? {
|
|
161
|
+
map ?: return null
|
|
162
|
+
return GraniteVideoAdsConfig(
|
|
163
|
+
type = map["type"] as? String,
|
|
164
|
+
streamType = map["streamType"] as? String,
|
|
165
|
+
adTagUrl = map["adTagUrl"] as? String,
|
|
166
|
+
adLanguage = map["adLanguage"] as? String,
|
|
167
|
+
contentSourceId = map["contentSourceId"] as? String,
|
|
168
|
+
videoId = map["videoId"] as? String,
|
|
169
|
+
assetKey = map["assetKey"] as? String,
|
|
170
|
+
format = map["format"] as? String,
|
|
171
|
+
fallbackUri = map["fallbackUri"] as? String,
|
|
172
|
+
adTagParameters = map["adTagParameters"] as? Map<String, String>
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@Suppress("UNCHECKED_CAST")
|
|
177
|
+
private fun parseBufferConfig(map: Map<String, Any>?): GraniteVideoBufferConfig? {
|
|
178
|
+
map ?: return null
|
|
179
|
+
val liveMap = map["live"] as? Map<String, Any>
|
|
180
|
+
return GraniteVideoBufferConfig(
|
|
181
|
+
minBufferMs = (map["minBufferMs"] as? Number)?.toInt() ?: 15000,
|
|
182
|
+
maxBufferMs = (map["maxBufferMs"] as? Number)?.toInt() ?: 50000,
|
|
183
|
+
bufferForPlaybackMs = (map["bufferForPlaybackMs"] as? Number)?.toInt() ?: 2500,
|
|
184
|
+
bufferForPlaybackAfterRebufferMs = (map["bufferForPlaybackAfterRebufferMs"] as? Number)?.toInt() ?: 5000,
|
|
185
|
+
backBufferDurationMs = (map["backBufferDurationMs"] as? Number)?.toInt() ?: 0,
|
|
186
|
+
cacheSizeMB = (map["cacheSizeMB"] as? Number)?.toInt() ?: 0,
|
|
187
|
+
live = liveMap?.let {
|
|
188
|
+
GraniteVideoBufferConfigLive(
|
|
189
|
+
maxPlaybackSpeed = (it["maxPlaybackSpeed"] as? Number)?.toFloat() ?: -1f,
|
|
190
|
+
minPlaybackSpeed = (it["minPlaybackSpeed"] as? Number)?.toFloat() ?: -1f,
|
|
191
|
+
maxOffsetMs = (it["maxOffsetMs"] as? Number)?.toInt() ?: -1,
|
|
192
|
+
minOffsetMs = (it["minOffsetMs"] as? Number)?.toInt() ?: -1,
|
|
193
|
+
targetOffsetMs = (it["targetOffsetMs"] as? Number)?.toInt() ?: -1
|
|
194
|
+
)
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
}
|
|
198
|
+
|
|
88
199
|
// Playback Control
|
|
89
200
|
fun setPaused(paused: Boolean) {
|
|
90
201
|
this.paused = paused
|
|
@@ -148,16 +259,27 @@ class GraniteVideoView @JvmOverloads constructor(
|
|
|
148
259
|
}
|
|
149
260
|
|
|
150
261
|
// Buffer
|
|
262
|
+
@Suppress("UNCHECKED_CAST")
|
|
151
263
|
fun setBufferConfig(config: Map<String, Any>?) {
|
|
152
264
|
config ?: return
|
|
153
265
|
|
|
266
|
+
val liveMap = config["live"] as? Map<String, Any>
|
|
154
267
|
val bufferConfig = GraniteVideoBufferConfig(
|
|
155
268
|
minBufferMs = (config["minBufferMs"] as? Number)?.toInt() ?: 15000,
|
|
156
269
|
maxBufferMs = (config["maxBufferMs"] as? Number)?.toInt() ?: 50000,
|
|
157
270
|
bufferForPlaybackMs = (config["bufferForPlaybackMs"] as? Number)?.toInt() ?: 2500,
|
|
158
271
|
bufferForPlaybackAfterRebufferMs = (config["bufferForPlaybackAfterRebufferMs"] as? Number)?.toInt() ?: 5000,
|
|
159
272
|
backBufferDurationMs = (config["backBufferDurationMs"] as? Number)?.toInt() ?: 0,
|
|
160
|
-
cacheSizeMB = (config["cacheSizeMB"] as? Number)?.toInt() ?: 0
|
|
273
|
+
cacheSizeMB = (config["cacheSizeMB"] as? Number)?.toInt() ?: 0,
|
|
274
|
+
live = liveMap?.let {
|
|
275
|
+
GraniteVideoBufferConfigLive(
|
|
276
|
+
maxPlaybackSpeed = (it["maxPlaybackSpeed"] as? Number)?.toFloat() ?: -1f,
|
|
277
|
+
minPlaybackSpeed = (it["minPlaybackSpeed"] as? Number)?.toFloat() ?: -1f,
|
|
278
|
+
maxOffsetMs = (it["maxOffsetMs"] as? Number)?.toInt() ?: -1,
|
|
279
|
+
minOffsetMs = (it["minOffsetMs"] as? Number)?.toInt() ?: -1,
|
|
280
|
+
targetOffsetMs = (it["targetOffsetMs"] as? Number)?.toInt() ?: -1
|
|
281
|
+
)
|
|
282
|
+
}
|
|
161
283
|
)
|
|
162
284
|
provider?.setBufferConfig(bufferConfig)
|
|
163
285
|
}
|
|
@@ -170,6 +292,11 @@ class GraniteVideoView @JvmOverloads constructor(
|
|
|
170
292
|
provider?.setMinLoadRetryCount(count)
|
|
171
293
|
}
|
|
172
294
|
|
|
295
|
+
// Content Start Time
|
|
296
|
+
fun setContentStartTime(time: Double) {
|
|
297
|
+
provider?.setContentStartTime(time)
|
|
298
|
+
}
|
|
299
|
+
|
|
173
300
|
// Track Selection
|
|
174
301
|
fun setSelectedAudioTrack(track: Map<String, Any>?) {
|
|
175
302
|
track ?: return
|
|
@@ -230,7 +230,9 @@ class GraniteVideoViewManager(
|
|
|
230
230
|
override fun setFullscreenOrientation(view: GraniteVideoView?, value: String?) {}
|
|
231
231
|
|
|
232
232
|
@ReactProp(name = "contentStartTime")
|
|
233
|
-
override fun setContentStartTime(view: GraniteVideoView?, value: Double) {
|
|
233
|
+
override fun setContentStartTime(view: GraniteVideoView?, value: Double) {
|
|
234
|
+
view?.setContentStartTime(value)
|
|
235
|
+
}
|
|
234
236
|
|
|
235
237
|
@ReactProp(name = "allowsExternalPlayback")
|
|
236
238
|
override fun setAllowsExternalPlayback(view: GraniteVideoView?, value: Boolean) {}
|
|
@@ -37,7 +37,21 @@ data class GraniteVideoSource(
|
|
|
37
37
|
val cropStart: Double = 0.0,
|
|
38
38
|
val cropEnd: Double = 0.0,
|
|
39
39
|
val headers: Map<String, String>? = null,
|
|
40
|
-
val drm: GraniteVideoDrmConfig? = null
|
|
40
|
+
val drm: GraniteVideoDrmConfig? = null,
|
|
41
|
+
val isNetwork: Boolean? = null,
|
|
42
|
+
val isAsset: Boolean = false,
|
|
43
|
+
val isLocalAssetFile: Boolean = false,
|
|
44
|
+
val shouldCache: Boolean = true,
|
|
45
|
+
val mainVer: Int = 0,
|
|
46
|
+
val patchVer: Int = 0,
|
|
47
|
+
val contentStartTime: Double = -1.0,
|
|
48
|
+
val minLoadRetryCount: Int = 3,
|
|
49
|
+
val textTracksAllowChunklessPreparation: Boolean = true,
|
|
50
|
+
val metadata: GraniteVideoMetadata? = null,
|
|
51
|
+
val cmcd: GraniteVideoCmcdConfig? = null,
|
|
52
|
+
val textTracks: List<GraniteVideoTextTrack>? = null,
|
|
53
|
+
val ad: GraniteVideoAdsConfig? = null,
|
|
54
|
+
val bufferConfig: GraniteVideoBufferConfig? = null
|
|
41
55
|
)
|
|
42
56
|
|
|
43
57
|
data class GraniteVideoDrmConfig(
|
|
@@ -53,7 +67,16 @@ data class GraniteVideoBufferConfig(
|
|
|
53
67
|
val bufferForPlaybackMs: Int = 2500,
|
|
54
68
|
val bufferForPlaybackAfterRebufferMs: Int = 5000,
|
|
55
69
|
val backBufferDurationMs: Int = 0,
|
|
56
|
-
val cacheSizeMB: Int = 0
|
|
70
|
+
val cacheSizeMB: Int = 0,
|
|
71
|
+
val live: GraniteVideoBufferConfigLive? = null
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
data class GraniteVideoBufferConfigLive(
|
|
75
|
+
val maxPlaybackSpeed: Float = -1f,
|
|
76
|
+
val minPlaybackSpeed: Float = -1f,
|
|
77
|
+
val maxOffsetMs: Int = -1,
|
|
78
|
+
val minOffsetMs: Int = -1,
|
|
79
|
+
val targetOffsetMs: Int = -1
|
|
57
80
|
)
|
|
58
81
|
|
|
59
82
|
data class GraniteVideoSelectedTrack(
|
|
@@ -61,6 +84,42 @@ data class GraniteVideoSelectedTrack(
|
|
|
61
84
|
val value: String? = null
|
|
62
85
|
)
|
|
63
86
|
|
|
87
|
+
data class GraniteVideoMetadata(
|
|
88
|
+
val title: String? = null,
|
|
89
|
+
val subtitle: String? = null,
|
|
90
|
+
val description: String? = null,
|
|
91
|
+
val artist: String? = null,
|
|
92
|
+
val imageUri: String? = null
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
data class GraniteVideoCmcdConfig(
|
|
96
|
+
val mode: Int = 1, // 0=HEADER, 1=QUERY_PARAM (default)
|
|
97
|
+
val request: Map<String, String>? = null,
|
|
98
|
+
val session: Map<String, String>? = null,
|
|
99
|
+
val obj: Map<String, String>? = null, // 'object' is a Kotlin reserved keyword
|
|
100
|
+
val status: Map<String, String>? = null
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
data class GraniteVideoTextTrack(
|
|
104
|
+
val title: String = "",
|
|
105
|
+
val language: String = "",
|
|
106
|
+
val type: String = "",
|
|
107
|
+
val uri: String = ""
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
data class GraniteVideoAdsConfig(
|
|
111
|
+
val type: String? = null, // "csai" | "ssai"
|
|
112
|
+
val streamType: String? = null, // "vod" | "live"
|
|
113
|
+
val adTagUrl: String? = null,
|
|
114
|
+
val adLanguage: String? = null,
|
|
115
|
+
val contentSourceId: String? = null,
|
|
116
|
+
val videoId: String? = null,
|
|
117
|
+
val assetKey: String? = null,
|
|
118
|
+
val format: String? = null, // "hls" | "dash"
|
|
119
|
+
val fallbackUri: String? = null,
|
|
120
|
+
val adTagParameters: Map<String, String>? = null
|
|
121
|
+
)
|
|
122
|
+
|
|
64
123
|
// ============================================================
|
|
65
124
|
// Event Data Classes
|
|
66
125
|
// ============================================================
|
|
@@ -206,6 +265,9 @@ interface GraniteVideoProvider {
|
|
|
206
265
|
fun isHEVCSupported(): Boolean = false
|
|
207
266
|
fun getWidevineLevel(): Int = 0
|
|
208
267
|
|
|
268
|
+
// Optional - Content Start Time (SSAI)
|
|
269
|
+
fun setContentStartTime(time: Double) {}
|
|
270
|
+
|
|
209
271
|
// Lifecycle - Release resources
|
|
210
272
|
fun release() {}
|
|
211
273
|
}
|
|
@@ -11,17 +11,37 @@ const {
|
|
|
11
11
|
// For Fabric (New Architecture), the component is always available through codegenNativeComponent
|
|
12
12
|
// We don't need to check UIManager.getViewManagerConfig which is Old Architecture only
|
|
13
13
|
|
|
14
|
+
// Convert CMCD config to native format.
|
|
15
|
+
function normalizeCmcd(cmcd) {
|
|
16
|
+
if (cmcd === undefined || cmcd === null) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
if (typeof cmcd === 'boolean') {
|
|
20
|
+
if (!cmcd) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
// When true, use MODE_QUERY_PARAMETER as default
|
|
24
|
+
return {
|
|
25
|
+
mode: 1
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
mode: cmcd.mode ?? 1,
|
|
30
|
+
request: cmcd.request,
|
|
31
|
+
// passes as Record through ReadableMap
|
|
32
|
+
session: cmcd.session,
|
|
33
|
+
object: cmcd.object,
|
|
34
|
+
status: cmcd.status
|
|
35
|
+
};
|
|
36
|
+
}
|
|
14
37
|
function normalizeSource(source) {
|
|
15
38
|
if (typeof source === 'number') {
|
|
16
39
|
// require() - not yet supported in native
|
|
17
40
|
return undefined;
|
|
18
41
|
}
|
|
19
42
|
return {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
startPosition: source.startPosition,
|
|
23
|
-
cropStart: source.cropStart,
|
|
24
|
-
cropEnd: source.cropEnd
|
|
43
|
+
...source,
|
|
44
|
+
cmcd: normalizeCmcd(source.cmcd)
|
|
25
45
|
};
|
|
26
46
|
}
|
|
27
47
|
function normalizeSelectedTrack(track) {
|
|
@@ -54,6 +74,9 @@ function normalizeDrm(drm) {
|
|
|
54
74
|
base64Certificate: drm.base64Certificate
|
|
55
75
|
};
|
|
56
76
|
}
|
|
77
|
+
|
|
78
|
+
// Note: `live` is only available via source-embedded bufferConfig (NativeSourceBufferConfig),
|
|
79
|
+
// not via the top-level bufferConfig prop (NativeBufferConfig).
|
|
57
80
|
function normalizeBufferConfig(config) {
|
|
58
81
|
if (!config) {
|
|
59
82
|
return undefined;
|
|
@@ -340,7 +363,10 @@ const VideoBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
340
363
|
testID: testID,
|
|
341
364
|
children: /*#__PURE__*/_jsx(NativeGraniteVideoView, {
|
|
342
365
|
ref: nativeRef,
|
|
343
|
-
style: styles.video
|
|
366
|
+
style: styles.video
|
|
367
|
+
// Cast needed: normalizeSource includes fields (drm.headers, cmcd.request/session/object/status,
|
|
368
|
+
// ad.adTagParameters) that bypass Codegen typing and pass through ReadableMap directly.
|
|
369
|
+
,
|
|
344
370
|
source: normalizeSource(source),
|
|
345
371
|
poster: getPosterUri(poster),
|
|
346
372
|
posterResizeMode: posterResizeMode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useRef","useImperativeHandle","useCallback","Platform","StyleSheet","View","Image","findNodeHandle","NativeModules","NativeGraniteVideoView","Commands","jsx","_jsx","GraniteVideoModule","normalizeSource","source","undefined","uri","type","startPosition","cropStart","cropEnd","normalizeSelectedTrack","track","value","toString","normalizeSelectedVideoTrack","normalizeDrm","drm","licenseServer","contentId","certificateUrl","base64Certificate","normalizeBufferConfig","config","minBufferMs","maxBufferMs","bufferForPlaybackMs","bufferForPlaybackAfterRebufferMs","backBufferDurationMs","cacheSizeMB","getPosterUri","poster","resolved","resolveAssetSource","VideoBase","props","ref","testID","style","posterResizeMode","paused","muted","volume","rate","repeat","playInBackground","playWhenInactive","automaticallyWaitsToMinimizeStalling","shutterColor","resizeMode","viewType","useTextureView","useSecureView","bufferConfig","minLoadRetryCount","maxBitRate","preferredForwardBufferDuration","selectedAudioTrack","selectedTextTrack","selectedVideoTrack","localSourceEncryptionKeyScheme","adTagUrl","adLanguage","controls","showNotificationControls","disableFocus","disableDisconnectError","focusable","hideShutterView","preventsDisplaySleepDuringVideoPlayback","fullscreen","fullscreenAutorotate","fullscreenOrientation","pictureInPicture","contentStartTime","allowsExternalPlayback","audioOutput","ignoreSilentSwitch","mixWithOthers","debug","onLoadStart","onLoad","onError","onProgress","onSeek","onEnd","onBuffer","onBandwidthUpdate","onPlaybackStateChanged","onPlaybackRateChange","onVolumeChange","onIdle","onReadyForDisplay","onAudioFocusChanged","onAudioBecomingNoisy","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","onPictureInPictureStatusChanged","onRestoreUserInterfaceForPictureInPictureStop","onControlsVisibilityChange","onExternalPlaybackChange","onAspectRatio","onTransferEnd","nativeRef","seek","time","tolerance","current","pause","resume","setVolume","vol","adjustVolume","setFullScreen","fs","presentFullscreenPlayer","dismissFullscreenPlayer","enterPictureInPicture","exitPictureInPicture","setSource","newSource","loadSource","getCurrentPosition","handle","save","options","restoreUserInterfaceForPictureInPictureStopCompleted","handleLoadStart","event","nativeEvent","handleLoad","loadData","naturalSize","orientation","audioTracks","textTracks","videoTracks","handleError","handleProgress","handleSeek","handleEnd","handleBuffer","handleBandwidthUpdate","handlePlaybackStateChanged","handlePlaybackRateChange","handleVolumeChange","handleIdle","handleReadyForDisplay","handleAudioFocusChanged","handleAudioBecomingNoisy","handleFullscreenPlayerWillPresent","handleFullscreenPlayerDidPresent","handleFullscreenPlayerWillDismiss","handleFullscreenPlayerDidDismiss","handlePictureInPictureStatusChanged","handleRestoreUserInterfaceForPictureInPictureStop","handleControlsVisibilityChange","handleExternalPlaybackChange","handleAspectRatio","handleTransferEnd","containerStyle","styles","container","children","video","enableDebug","enable","enableDebugThread","thread","onVideoLoadStart","onVideoLoad","onVideoError","onVideoProgress","onVideoSeek","onVideoEnd","onVideoBuffer","onVideoBandwidthUpdate","onVideoPlaybackStateChanged","onVideoPlaybackRateChange","onVideoVolumeChange","onVideoIdle","onVideoReadyForDisplay","onVideoAudioFocusChanged","onVideoAudioBecomingNoisy","onVideoFullscreenPlayerWillPresent","onVideoFullscreenPlayerDidPresent","onVideoFullscreenPlayerWillDismiss","onVideoFullscreenPlayerDidDismiss","onVideoPictureInPictureStatusChanged","onVideoRestoreUserInterfaceForPictureInPictureStop","onVideoControlsVisibilityChange","onVideoExternalPlaybackChange","onVideoAspectRatio","displayName","isAvailable","Video","create","overflow","absoluteFillObject","clearCache","getWidevineLevel","OS","isCodecSupported","mimeType","width","height","isHEVCSupported"],"sourceRoot":"../../src","sources":["GraniteVideo.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useRef","useImperativeHandle","useCallback","Platform","StyleSheet","View","Image","findNodeHandle","NativeModules","NativeGraniteVideoView","Commands","jsx","_jsx","GraniteVideoModule","normalizeCmcd","cmcd","undefined","mode","request","session","object","status","normalizeSource","source","normalizeSelectedTrack","track","type","value","toString","normalizeSelectedVideoTrack","normalizeDrm","drm","licenseServer","contentId","certificateUrl","base64Certificate","normalizeBufferConfig","config","minBufferMs","maxBufferMs","bufferForPlaybackMs","bufferForPlaybackAfterRebufferMs","backBufferDurationMs","cacheSizeMB","getPosterUri","poster","uri","resolved","resolveAssetSource","VideoBase","props","ref","testID","style","posterResizeMode","paused","muted","volume","rate","repeat","playInBackground","playWhenInactive","automaticallyWaitsToMinimizeStalling","shutterColor","resizeMode","viewType","useTextureView","useSecureView","bufferConfig","minLoadRetryCount","maxBitRate","preferredForwardBufferDuration","selectedAudioTrack","selectedTextTrack","selectedVideoTrack","localSourceEncryptionKeyScheme","adTagUrl","adLanguage","controls","showNotificationControls","disableFocus","disableDisconnectError","focusable","hideShutterView","preventsDisplaySleepDuringVideoPlayback","fullscreen","fullscreenAutorotate","fullscreenOrientation","pictureInPicture","contentStartTime","allowsExternalPlayback","audioOutput","ignoreSilentSwitch","mixWithOthers","debug","onLoadStart","onLoad","onError","onProgress","onSeek","onEnd","onBuffer","onBandwidthUpdate","onPlaybackStateChanged","onPlaybackRateChange","onVolumeChange","onIdle","onReadyForDisplay","onAudioFocusChanged","onAudioBecomingNoisy","onFullscreenPlayerWillPresent","onFullscreenPlayerDidPresent","onFullscreenPlayerWillDismiss","onFullscreenPlayerDidDismiss","onPictureInPictureStatusChanged","onRestoreUserInterfaceForPictureInPictureStop","onControlsVisibilityChange","onExternalPlaybackChange","onAspectRatio","onTransferEnd","nativeRef","seek","time","tolerance","current","pause","resume","setVolume","vol","adjustVolume","setFullScreen","fs","presentFullscreenPlayer","dismissFullscreenPlayer","enterPictureInPicture","exitPictureInPicture","setSource","newSource","loadSource","getCurrentPosition","handle","save","options","restoreUserInterfaceForPictureInPictureStopCompleted","handleLoadStart","event","nativeEvent","handleLoad","loadData","naturalSize","orientation","audioTracks","textTracks","videoTracks","handleError","handleProgress","handleSeek","handleEnd","handleBuffer","handleBandwidthUpdate","handlePlaybackStateChanged","handlePlaybackRateChange","handleVolumeChange","handleIdle","handleReadyForDisplay","handleAudioFocusChanged","handleAudioBecomingNoisy","handleFullscreenPlayerWillPresent","handleFullscreenPlayerDidPresent","handleFullscreenPlayerWillDismiss","handleFullscreenPlayerDidDismiss","handlePictureInPictureStatusChanged","handleRestoreUserInterfaceForPictureInPictureStop","handleControlsVisibilityChange","handleExternalPlaybackChange","handleAspectRatio","handleTransferEnd","containerStyle","styles","container","children","video","enableDebug","enable","enableDebugThread","thread","onVideoLoadStart","onVideoLoad","onVideoError","onVideoProgress","onVideoSeek","onVideoEnd","onVideoBuffer","onVideoBandwidthUpdate","onVideoPlaybackStateChanged","onVideoPlaybackRateChange","onVideoVolumeChange","onVideoIdle","onVideoReadyForDisplay","onVideoAudioFocusChanged","onVideoAudioBecomingNoisy","onVideoFullscreenPlayerWillPresent","onVideoFullscreenPlayerDidPresent","onVideoFullscreenPlayerWillDismiss","onVideoFullscreenPlayerDidDismiss","onVideoPictureInPictureStatusChanged","onVideoRestoreUserInterfaceForPictureInPictureStop","onVideoControlsVisibilityChange","onVideoExternalPlaybackChange","onVideoAspectRatio","displayName","isAvailable","Video","create","overflow","absoluteFillObject","clearCache","getWidevineLevel","OS","isCodecSupported","mimeType","width","height","isHEVCSupported"],"sourceRoot":"../../src","sources":["GraniteVideo.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,12 +11,93 @@ import {
|
|
|
11
11
|
// Native Props Interface
|
|
12
12
|
// ============================================================
|
|
13
13
|
|
|
14
|
+
// Native video metadata
|
|
15
|
+
interface NativeVideoMetadata {
|
|
16
|
+
title?: string;
|
|
17
|
+
subtitle?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
artist?: string;
|
|
20
|
+
imageUri?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Native DRM config (source-embedded DRM)
|
|
24
|
+
interface NativeSourceDrmConfig {
|
|
25
|
+
type?: string;
|
|
26
|
+
licenseServer?: string;
|
|
27
|
+
contentId?: string;
|
|
28
|
+
certificateUrl?: string;
|
|
29
|
+
base64Certificate?: boolean;
|
|
30
|
+
multiDrm?: boolean;
|
|
31
|
+
localSourceEncryptionKeyScheme?: string; // iOS-Only offline DRM key scheme
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Native CMCD config
|
|
35
|
+
interface NativeCmcdConfiguration {
|
|
36
|
+
mode?: Int32;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Native text track
|
|
40
|
+
interface NativeTextTrack {
|
|
41
|
+
title: string;
|
|
42
|
+
language: string;
|
|
43
|
+
type: string;
|
|
44
|
+
uri: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Native ad config
|
|
48
|
+
interface NativeAdsConfig {
|
|
49
|
+
type?: string;
|
|
50
|
+
streamType?: string;
|
|
51
|
+
adTagUrl?: string;
|
|
52
|
+
adLanguage?: string;
|
|
53
|
+
contentSourceId?: string;
|
|
54
|
+
videoId?: string;
|
|
55
|
+
assetKey?: string;
|
|
56
|
+
format?: string;
|
|
57
|
+
fallbackUri?: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Native live buffer config
|
|
61
|
+
interface NativeBufferConfigLive {
|
|
62
|
+
maxPlaybackSpeed?: Float;
|
|
63
|
+
minPlaybackSpeed?: Float;
|
|
64
|
+
maxOffsetMs?: Int32;
|
|
65
|
+
minOffsetMs?: Int32;
|
|
66
|
+
targetOffsetMs?: Int32;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Native source-embedded buffer config
|
|
70
|
+
interface NativeSourceBufferConfig {
|
|
71
|
+
minBufferMs?: Int32;
|
|
72
|
+
maxBufferMs?: Int32;
|
|
73
|
+
bufferForPlaybackMs?: Int32;
|
|
74
|
+
bufferForPlaybackAfterRebufferMs?: Int32;
|
|
75
|
+
backBufferDurationMs?: Int32;
|
|
76
|
+
cacheSizeMB?: Int32;
|
|
77
|
+
live?: NativeBufferConfigLive;
|
|
78
|
+
}
|
|
79
|
+
|
|
14
80
|
interface NativeVideoSource {
|
|
15
81
|
uri?: string;
|
|
16
82
|
type?: string;
|
|
17
83
|
startPosition?: Double;
|
|
18
84
|
cropStart?: Double;
|
|
19
85
|
cropEnd?: Double;
|
|
86
|
+
isNetwork?: boolean;
|
|
87
|
+
isAsset?: boolean;
|
|
88
|
+
isLocalAssetFile?: boolean;
|
|
89
|
+
shouldCache?: boolean;
|
|
90
|
+
mainVer?: Int32;
|
|
91
|
+
patchVer?: Int32;
|
|
92
|
+
contentStartTime?: Double;
|
|
93
|
+
metadata?: NativeVideoMetadata;
|
|
94
|
+
drm?: NativeSourceDrmConfig;
|
|
95
|
+
cmcd?: NativeCmcdConfiguration;
|
|
96
|
+
textTracksAllowChunklessPreparation?: boolean;
|
|
97
|
+
textTracks?: ReadonlyArray<Readonly<NativeTextTrack>>;
|
|
98
|
+
ad?: NativeAdsConfig;
|
|
99
|
+
minLoadRetryCount?: Int32;
|
|
100
|
+
bufferConfig?: NativeSourceBufferConfig;
|
|
20
101
|
}
|
|
21
102
|
|
|
22
103
|
interface NativeBufferConfig {
|
package/dist/module/types.js
CHANGED
|
@@ -1,4 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// ============================================================
|
|
4
|
+
// Source Types
|
|
5
|
+
// ============================================================
|
|
6
|
+
|
|
7
|
+
// CMCD (Common Media Client Data) - Android Only
|
|
8
|
+
export let CmcdMode = /*#__PURE__*/function (CmcdMode) {
|
|
9
|
+
CmcdMode[CmcdMode["MODE_REQUEST_HEADER"] = 0] = "MODE_REQUEST_HEADER";
|
|
10
|
+
CmcdMode[CmcdMode["MODE_QUERY_PARAMETER"] = 1] = "MODE_QUERY_PARAMETER";
|
|
11
|
+
return CmcdMode;
|
|
12
|
+
}({});
|
|
13
|
+
|
|
14
|
+
// Ad configuration
|
|
15
|
+
|
|
16
|
+
// ============================================================
|
|
17
|
+
// Track Selection Types
|
|
18
|
+
// ============================================================
|
|
19
|
+
|
|
20
|
+
// ============================================================
|
|
21
|
+
// Resize Mode
|
|
22
|
+
// ============================================================
|
|
23
|
+
|
|
24
|
+
// ============================================================
|
|
25
|
+
// View Type (Android)
|
|
26
|
+
// ============================================================
|
|
27
|
+
|
|
28
|
+
// ============================================================
|
|
29
|
+
// Poster Source
|
|
30
|
+
// ============================================================
|
|
31
|
+
|
|
32
|
+
// ============================================================
|
|
33
|
+
// Event Data Types
|
|
34
|
+
// ============================================================
|
|
35
|
+
|
|
36
|
+
// ============================================================
|
|
37
|
+
// Ref Methods
|
|
38
|
+
// ============================================================
|
|
39
|
+
|
|
40
|
+
// ============================================================
|
|
41
|
+
// Component Props
|
|
42
|
+
// ============================================================
|
|
43
|
+
|
|
44
|
+
// ============================================================
|
|
45
|
+
// Static Methods
|
|
46
|
+
// ============================================================
|
|
4
47
|
//# sourceMappingURL=types.js.map
|
package/dist/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CmcdMode"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAmBA;AACA;AACA;;AAwCA;AACA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;;AAiBpB;;AAqDA;AACA;AACA;;AAeA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;;AAQA;AACA;AACA;;AA6EA;AACA;AACA;;AAkBA;AACA;AACA;;AAsOA;AACA;AACA","ignoreList":[]}
|
|
@@ -1,11 +1,78 @@
|
|
|
1
1
|
import { type ViewProps, type HostComponent } from 'react-native';
|
|
2
2
|
import { type Int32, type Float, type Double, type DirectEventHandler, type WithDefault } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
|
+
interface NativeVideoMetadata {
|
|
4
|
+
title?: string;
|
|
5
|
+
subtitle?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
artist?: string;
|
|
8
|
+
imageUri?: string;
|
|
9
|
+
}
|
|
10
|
+
interface NativeSourceDrmConfig {
|
|
11
|
+
type?: string;
|
|
12
|
+
licenseServer?: string;
|
|
13
|
+
contentId?: string;
|
|
14
|
+
certificateUrl?: string;
|
|
15
|
+
base64Certificate?: boolean;
|
|
16
|
+
multiDrm?: boolean;
|
|
17
|
+
localSourceEncryptionKeyScheme?: string;
|
|
18
|
+
}
|
|
19
|
+
interface NativeCmcdConfiguration {
|
|
20
|
+
mode?: Int32;
|
|
21
|
+
}
|
|
22
|
+
interface NativeTextTrack {
|
|
23
|
+
title: string;
|
|
24
|
+
language: string;
|
|
25
|
+
type: string;
|
|
26
|
+
uri: string;
|
|
27
|
+
}
|
|
28
|
+
interface NativeAdsConfig {
|
|
29
|
+
type?: string;
|
|
30
|
+
streamType?: string;
|
|
31
|
+
adTagUrl?: string;
|
|
32
|
+
adLanguage?: string;
|
|
33
|
+
contentSourceId?: string;
|
|
34
|
+
videoId?: string;
|
|
35
|
+
assetKey?: string;
|
|
36
|
+
format?: string;
|
|
37
|
+
fallbackUri?: string;
|
|
38
|
+
}
|
|
39
|
+
interface NativeBufferConfigLive {
|
|
40
|
+
maxPlaybackSpeed?: Float;
|
|
41
|
+
minPlaybackSpeed?: Float;
|
|
42
|
+
maxOffsetMs?: Int32;
|
|
43
|
+
minOffsetMs?: Int32;
|
|
44
|
+
targetOffsetMs?: Int32;
|
|
45
|
+
}
|
|
46
|
+
interface NativeSourceBufferConfig {
|
|
47
|
+
minBufferMs?: Int32;
|
|
48
|
+
maxBufferMs?: Int32;
|
|
49
|
+
bufferForPlaybackMs?: Int32;
|
|
50
|
+
bufferForPlaybackAfterRebufferMs?: Int32;
|
|
51
|
+
backBufferDurationMs?: Int32;
|
|
52
|
+
cacheSizeMB?: Int32;
|
|
53
|
+
live?: NativeBufferConfigLive;
|
|
54
|
+
}
|
|
3
55
|
interface NativeVideoSource {
|
|
4
56
|
uri?: string;
|
|
5
57
|
type?: string;
|
|
6
58
|
startPosition?: Double;
|
|
7
59
|
cropStart?: Double;
|
|
8
60
|
cropEnd?: Double;
|
|
61
|
+
isNetwork?: boolean;
|
|
62
|
+
isAsset?: boolean;
|
|
63
|
+
isLocalAssetFile?: boolean;
|
|
64
|
+
shouldCache?: boolean;
|
|
65
|
+
mainVer?: Int32;
|
|
66
|
+
patchVer?: Int32;
|
|
67
|
+
contentStartTime?: Double;
|
|
68
|
+
metadata?: NativeVideoMetadata;
|
|
69
|
+
drm?: NativeSourceDrmConfig;
|
|
70
|
+
cmcd?: NativeCmcdConfiguration;
|
|
71
|
+
textTracksAllowChunklessPreparation?: boolean;
|
|
72
|
+
textTracks?: ReadonlyArray<Readonly<NativeTextTrack>>;
|
|
73
|
+
ad?: NativeAdsConfig;
|
|
74
|
+
minLoadRetryCount?: Int32;
|
|
75
|
+
bufferConfig?: NativeSourceBufferConfig;
|
|
9
76
|
}
|
|
10
77
|
interface NativeBufferConfig {
|
|
11
78
|
minBufferMs?: Int32;
|
|
@@ -11,6 +11,7 @@ export interface DrmConfig {
|
|
|
11
11
|
certificateUrl?: string;
|
|
12
12
|
base64Certificate?: boolean;
|
|
13
13
|
multiDrm?: boolean;
|
|
14
|
+
localSourceEncryptionKeyScheme?: string;
|
|
14
15
|
}
|
|
15
16
|
export interface TextTrack {
|
|
16
17
|
title: string;
|
|
@@ -33,6 +34,36 @@ export interface BufferConfig {
|
|
|
33
34
|
targetOffsetMs?: number;
|
|
34
35
|
};
|
|
35
36
|
}
|
|
37
|
+
export declare enum CmcdMode {
|
|
38
|
+
MODE_REQUEST_HEADER = 0,
|
|
39
|
+
MODE_QUERY_PARAMETER = 1
|
|
40
|
+
}
|
|
41
|
+
export type CmcdData = Record<string, string>;
|
|
42
|
+
export type CmcdConfiguration = Readonly<{
|
|
43
|
+
mode?: CmcdMode;
|
|
44
|
+
request?: CmcdData;
|
|
45
|
+
session?: CmcdData;
|
|
46
|
+
object?: CmcdData;
|
|
47
|
+
status?: CmcdData;
|
|
48
|
+
}>;
|
|
49
|
+
export type Cmcd = boolean | CmcdConfiguration;
|
|
50
|
+
export type AdConfigCSAI = Readonly<{
|
|
51
|
+
type: 'csai';
|
|
52
|
+
adTagUrl: string;
|
|
53
|
+
adLanguage?: string;
|
|
54
|
+
}>;
|
|
55
|
+
export type AdConfigDAI = Readonly<{
|
|
56
|
+
type: 'ssai';
|
|
57
|
+
streamType: 'vod' | 'live';
|
|
58
|
+
contentSourceId?: string;
|
|
59
|
+
videoId?: string;
|
|
60
|
+
assetKey?: string;
|
|
61
|
+
format?: 'hls' | 'dash';
|
|
62
|
+
adTagParameters?: Record<string, string>;
|
|
63
|
+
fallbackUri?: string;
|
|
64
|
+
adLanguage?: string;
|
|
65
|
+
}>;
|
|
66
|
+
export type AdConfig = AdConfigCSAI | AdConfigDAI;
|
|
36
67
|
export interface VideoSource {
|
|
37
68
|
uri?: string;
|
|
38
69
|
type?: string;
|
|
@@ -45,6 +76,16 @@ export interface VideoSource {
|
|
|
45
76
|
drm?: DrmConfig;
|
|
46
77
|
textTracks?: TextTrack[];
|
|
47
78
|
metadata?: VideoMetadata;
|
|
79
|
+
shouldCache?: boolean;
|
|
80
|
+
isNetwork?: boolean;
|
|
81
|
+
isAsset?: boolean;
|
|
82
|
+
isLocalAssetFile?: boolean;
|
|
83
|
+
contentStartTime?: number;
|
|
84
|
+
minLoadRetryCount?: number;
|
|
85
|
+
textTracksAllowChunklessPreparation?: boolean;
|
|
86
|
+
cmcd?: Cmcd;
|
|
87
|
+
ad?: AdConfig;
|
|
88
|
+
bufferConfig?: BufferConfig;
|
|
48
89
|
}
|
|
49
90
|
export interface VideoMetadata {
|
|
50
91
|
title?: string;
|
|
@@ -260,8 +301,6 @@ export interface VideoProps {
|
|
|
260
301
|
* Callback when video is ready for display
|
|
261
302
|
*/
|
|
262
303
|
onReadyForDisplay?: () => void;
|
|
263
|
-
onPlaybackResume?: () => void;
|
|
264
|
-
onPlaybackStalled?: () => void;
|
|
265
304
|
onAudioTracks?: (data: OnAudioTracksData) => void;
|
|
266
305
|
onTextTracks?: (data: OnTextTracksData) => void;
|
|
267
306
|
onTextTrackDataChanged?: (data: OnTextTrackDataChangedData) => void;
|
package/package.json
CHANGED
package/src/GraniteVideo.tsx
CHANGED
|
@@ -37,6 +37,27 @@ const { GraniteVideoModule } = NativeModules;
|
|
|
37
37
|
// For Fabric (New Architecture), the component is always available through codegenNativeComponent
|
|
38
38
|
// We don't need to check UIManager.getViewManagerConfig which is Old Architecture only
|
|
39
39
|
|
|
40
|
+
// Convert CMCD config to native format.
|
|
41
|
+
function normalizeCmcd(cmcd: VideoSource['cmcd']) {
|
|
42
|
+
if (cmcd === undefined || cmcd === null) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
if (typeof cmcd === 'boolean') {
|
|
46
|
+
if (!cmcd) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
// When true, use MODE_QUERY_PARAMETER as default
|
|
50
|
+
return { mode: 1 };
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
mode: cmcd.mode ?? 1,
|
|
54
|
+
request: cmcd.request, // passes as Record through ReadableMap
|
|
55
|
+
session: cmcd.session,
|
|
56
|
+
object: cmcd.object,
|
|
57
|
+
status: cmcd.status,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
40
61
|
function normalizeSource(source: VideoSource | number): NativeProps['source'] | undefined {
|
|
41
62
|
if (typeof source === 'number') {
|
|
42
63
|
// require() - not yet supported in native
|
|
@@ -44,11 +65,8 @@ function normalizeSource(source: VideoSource | number): NativeProps['source'] |
|
|
|
44
65
|
}
|
|
45
66
|
|
|
46
67
|
return {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
startPosition: source.startPosition,
|
|
50
|
-
cropStart: source.cropStart,
|
|
51
|
-
cropEnd: source.cropEnd,
|
|
68
|
+
...source,
|
|
69
|
+
cmcd: normalizeCmcd(source.cmcd),
|
|
52
70
|
};
|
|
53
71
|
}
|
|
54
72
|
|
|
@@ -89,6 +107,8 @@ function normalizeDrm(drm?: VideoProps['drm']): NativeProps['drm'] | undefined {
|
|
|
89
107
|
};
|
|
90
108
|
}
|
|
91
109
|
|
|
110
|
+
// Note: `live` is only available via source-embedded bufferConfig (NativeSourceBufferConfig),
|
|
111
|
+
// not via the top-level bufferConfig prop (NativeBufferConfig).
|
|
92
112
|
function normalizeBufferConfig(config?: VideoProps['bufferConfig']): NativeProps['bufferConfig'] | undefined {
|
|
93
113
|
if (!config) {
|
|
94
114
|
return undefined;
|
|
@@ -449,6 +469,8 @@ const VideoBase = forwardRef<VideoRef, VideoProps>((props, ref) => {
|
|
|
449
469
|
<NativeGraniteVideoView
|
|
450
470
|
ref={nativeRef}
|
|
451
471
|
style={styles.video}
|
|
472
|
+
// Cast needed: normalizeSource includes fields (drm.headers, cmcd.request/session/object/status,
|
|
473
|
+
// ad.adTagParameters) that bypass Codegen typing and pass through ReadableMap directly.
|
|
452
474
|
source={normalizeSource(source)}
|
|
453
475
|
poster={getPosterUri(poster)}
|
|
454
476
|
posterResizeMode={posterResizeMode}
|
|
@@ -11,12 +11,93 @@ import {
|
|
|
11
11
|
// Native Props Interface
|
|
12
12
|
// ============================================================
|
|
13
13
|
|
|
14
|
+
// Native video metadata
|
|
15
|
+
interface NativeVideoMetadata {
|
|
16
|
+
title?: string;
|
|
17
|
+
subtitle?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
artist?: string;
|
|
20
|
+
imageUri?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Native DRM config (source-embedded DRM)
|
|
24
|
+
interface NativeSourceDrmConfig {
|
|
25
|
+
type?: string;
|
|
26
|
+
licenseServer?: string;
|
|
27
|
+
contentId?: string;
|
|
28
|
+
certificateUrl?: string;
|
|
29
|
+
base64Certificate?: boolean;
|
|
30
|
+
multiDrm?: boolean;
|
|
31
|
+
localSourceEncryptionKeyScheme?: string; // iOS-Only offline DRM key scheme
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Native CMCD config
|
|
35
|
+
interface NativeCmcdConfiguration {
|
|
36
|
+
mode?: Int32;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Native text track
|
|
40
|
+
interface NativeTextTrack {
|
|
41
|
+
title: string;
|
|
42
|
+
language: string;
|
|
43
|
+
type: string;
|
|
44
|
+
uri: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Native ad config
|
|
48
|
+
interface NativeAdsConfig {
|
|
49
|
+
type?: string;
|
|
50
|
+
streamType?: string;
|
|
51
|
+
adTagUrl?: string;
|
|
52
|
+
adLanguage?: string;
|
|
53
|
+
contentSourceId?: string;
|
|
54
|
+
videoId?: string;
|
|
55
|
+
assetKey?: string;
|
|
56
|
+
format?: string;
|
|
57
|
+
fallbackUri?: string;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Native live buffer config
|
|
61
|
+
interface NativeBufferConfigLive {
|
|
62
|
+
maxPlaybackSpeed?: Float;
|
|
63
|
+
minPlaybackSpeed?: Float;
|
|
64
|
+
maxOffsetMs?: Int32;
|
|
65
|
+
minOffsetMs?: Int32;
|
|
66
|
+
targetOffsetMs?: Int32;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Native source-embedded buffer config
|
|
70
|
+
interface NativeSourceBufferConfig {
|
|
71
|
+
minBufferMs?: Int32;
|
|
72
|
+
maxBufferMs?: Int32;
|
|
73
|
+
bufferForPlaybackMs?: Int32;
|
|
74
|
+
bufferForPlaybackAfterRebufferMs?: Int32;
|
|
75
|
+
backBufferDurationMs?: Int32;
|
|
76
|
+
cacheSizeMB?: Int32;
|
|
77
|
+
live?: NativeBufferConfigLive;
|
|
78
|
+
}
|
|
79
|
+
|
|
14
80
|
interface NativeVideoSource {
|
|
15
81
|
uri?: string;
|
|
16
82
|
type?: string;
|
|
17
83
|
startPosition?: Double;
|
|
18
84
|
cropStart?: Double;
|
|
19
85
|
cropEnd?: Double;
|
|
86
|
+
isNetwork?: boolean;
|
|
87
|
+
isAsset?: boolean;
|
|
88
|
+
isLocalAssetFile?: boolean;
|
|
89
|
+
shouldCache?: boolean;
|
|
90
|
+
mainVer?: Int32;
|
|
91
|
+
patchVer?: Int32;
|
|
92
|
+
contentStartTime?: Double;
|
|
93
|
+
metadata?: NativeVideoMetadata;
|
|
94
|
+
drm?: NativeSourceDrmConfig;
|
|
95
|
+
cmcd?: NativeCmcdConfiguration;
|
|
96
|
+
textTracksAllowChunklessPreparation?: boolean;
|
|
97
|
+
textTracks?: ReadonlyArray<Readonly<NativeTextTrack>>;
|
|
98
|
+
ad?: NativeAdsConfig;
|
|
99
|
+
minLoadRetryCount?: Int32;
|
|
100
|
+
bufferConfig?: NativeSourceBufferConfig;
|
|
20
101
|
}
|
|
21
102
|
|
|
22
103
|
interface NativeBufferConfig {
|
package/src/types.ts
CHANGED
|
@@ -33,6 +33,7 @@ export interface DrmConfig {
|
|
|
33
33
|
certificateUrl?: string;
|
|
34
34
|
base64Certificate?: boolean;
|
|
35
35
|
multiDrm?: boolean;
|
|
36
|
+
localSourceEncryptionKeyScheme?: string; // iOS Only: offline DRM key scheme
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
export interface TextTrack {
|
|
@@ -58,6 +59,45 @@ export interface BufferConfig {
|
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
// CMCD (Common Media Client Data) - Android Only
|
|
63
|
+
export enum CmcdMode {
|
|
64
|
+
MODE_REQUEST_HEADER = 0,
|
|
65
|
+
MODE_QUERY_PARAMETER = 1,
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export type CmcdData = Record<string, string>;
|
|
69
|
+
|
|
70
|
+
export type CmcdConfiguration = Readonly<{
|
|
71
|
+
mode?: CmcdMode;
|
|
72
|
+
request?: CmcdData;
|
|
73
|
+
session?: CmcdData;
|
|
74
|
+
object?: CmcdData;
|
|
75
|
+
status?: CmcdData;
|
|
76
|
+
}>;
|
|
77
|
+
|
|
78
|
+
export type Cmcd = boolean | CmcdConfiguration;
|
|
79
|
+
|
|
80
|
+
// Ad configuration
|
|
81
|
+
export type AdConfigCSAI = Readonly<{
|
|
82
|
+
type: 'csai';
|
|
83
|
+
adTagUrl: string;
|
|
84
|
+
adLanguage?: string;
|
|
85
|
+
}>;
|
|
86
|
+
|
|
87
|
+
export type AdConfigDAI = Readonly<{
|
|
88
|
+
type: 'ssai';
|
|
89
|
+
streamType: 'vod' | 'live';
|
|
90
|
+
contentSourceId?: string;
|
|
91
|
+
videoId?: string;
|
|
92
|
+
assetKey?: string;
|
|
93
|
+
format?: 'hls' | 'dash';
|
|
94
|
+
adTagParameters?: Record<string, string>;
|
|
95
|
+
fallbackUri?: string;
|
|
96
|
+
adLanguage?: string;
|
|
97
|
+
}>;
|
|
98
|
+
|
|
99
|
+
export type AdConfig = AdConfigCSAI | AdConfigDAI;
|
|
100
|
+
|
|
61
101
|
export interface VideoSource {
|
|
62
102
|
uri?: string;
|
|
63
103
|
type?: string;
|
|
@@ -70,6 +110,16 @@ export interface VideoSource {
|
|
|
70
110
|
drm?: DrmConfig;
|
|
71
111
|
textTracks?: TextTrack[];
|
|
72
112
|
metadata?: VideoMetadata;
|
|
113
|
+
shouldCache?: boolean;
|
|
114
|
+
isNetwork?: boolean;
|
|
115
|
+
isAsset?: boolean;
|
|
116
|
+
isLocalAssetFile?: boolean;
|
|
117
|
+
contentStartTime?: number;
|
|
118
|
+
minLoadRetryCount?: number;
|
|
119
|
+
textTracksAllowChunklessPreparation?: boolean;
|
|
120
|
+
cmcd?: Cmcd;
|
|
121
|
+
ad?: AdConfig;
|
|
122
|
+
bufferConfig?: BufferConfig;
|
|
73
123
|
}
|
|
74
124
|
|
|
75
125
|
export interface VideoMetadata {
|
|
@@ -376,8 +426,6 @@ export interface VideoProps {
|
|
|
376
426
|
* Callback when video is ready for display
|
|
377
427
|
*/
|
|
378
428
|
onReadyForDisplay?: () => void;
|
|
379
|
-
onPlaybackResume?: () => void;
|
|
380
|
-
onPlaybackStalled?: () => void;
|
|
381
429
|
|
|
382
430
|
// Track Events
|
|
383
431
|
onAudioTracks?: (data: OnAudioTracksData) => void;
|