@takeoffmedia/react-native-penthera 0.7.0 → 0.8.0
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/android/src/main/java/com/takeoffmediareactnativepenthera/virtuoso/OfflineVideoEngine.kt +22 -18
- package/android/src/main/java/com/takeoffmediareactnativepenthera/virtuoso/util/Util.kt +24 -0
- package/lib/typescript/interface/PentheraTypes.d.ts +7 -0
- package/lib/typescript/interface/PentheraTypes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/interface/PentheraTypes.ts +8 -0
package/android/src/main/java/com/takeoffmediareactnativepenthera/virtuoso/OfflineVideoEngine.kt
CHANGED
|
@@ -29,6 +29,7 @@ import com.takeoffmediareactnativepenthera.AssetQueueObserver
|
|
|
29
29
|
import com.takeoffmediareactnativepenthera.EventEmitter
|
|
30
30
|
import com.takeoffmediareactnativepenthera.PentheraEvent
|
|
31
31
|
import com.takeoffmediareactnativepenthera.virtuoso.errors.PentheraErrors
|
|
32
|
+
import com.takeoffmediareactnativepenthera.virtuoso.util.Util
|
|
32
33
|
import org.json.JSONArray
|
|
33
34
|
import org.json.JSONObject
|
|
34
35
|
import java.net.MalformedURLException
|
|
@@ -37,6 +38,7 @@ import java.util.UUID
|
|
|
37
38
|
import okhttp3.OkHttpClient
|
|
38
39
|
import okhttp3.Request
|
|
39
40
|
import java.io.IOException
|
|
41
|
+
import kotlinx.coroutines.delay
|
|
40
42
|
|
|
41
43
|
class OfflineVideoEngine(private val context: ReactApplicationContext) {
|
|
42
44
|
private val virtuoso = Virtuoso(context)
|
|
@@ -318,43 +320,45 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
|
|
|
318
320
|
|
|
319
321
|
|
|
320
322
|
fun getByAssetId(assetId: String): String? {
|
|
321
|
-
|
|
323
|
+
return Util.retryWithDelay(maxRetries = 5, delayMillis = 1000) {
|
|
322
324
|
val list: MutableList<IIdentifier> = virtuoso.assetManager.getByAssetId(assetId)
|
|
325
|
+
if (list.isNotEmpty()) {
|
|
326
|
+
val asset = list[0] as VirtuosoSegmentedFile
|
|
323
327
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
if (offlineUrl != null) {
|
|
331
|
-
val request = Request.Builder()
|
|
332
|
-
.url(offlineUrl.toString())
|
|
333
|
-
.build()
|
|
328
|
+
// This is a workaround to handle ancillary files
|
|
329
|
+
val offlineUrl = asset.playbackURL
|
|
330
|
+
if (offlineUrl != null) {
|
|
331
|
+
val request = Request.Builder()
|
|
332
|
+
.url(offlineUrl.toString())
|
|
333
|
+
.build()
|
|
334
334
|
|
|
335
|
+
try {
|
|
335
336
|
client.newCall(request).execute().use { response ->
|
|
336
337
|
if (!response.isSuccessful) throw IOException("Unexpected code $response")
|
|
337
338
|
}
|
|
338
339
|
|
|
339
340
|
val keyValueMap = HashMap<String, Any>()
|
|
340
341
|
keyValueMap["offlineUrl"] = offlineUrl.toString()
|
|
341
|
-
keyValueMap["metadata"] = asset
|
|
342
|
+
keyValueMap["metadata"] = asset.metadata.toString()
|
|
342
343
|
|
|
343
344
|
val ancillaryFiles = (asset as ISegmentedAsset).getAncillaryFiles(context)
|
|
344
345
|
|
|
345
346
|
// HERE THE ASSET MANIFEST IS REQUESTED
|
|
346
347
|
keyValueMap["ancillary"] = ancillaryFiles
|
|
347
|
-
return gson.toJson(keyValueMap)
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
println("Error: offlineUrl is null")
|
|
348
|
+
return@retryWithDelay gson.toJson(keyValueMap)
|
|
349
|
+
} catch (e: IOException) {
|
|
350
|
+
println("Error: ${e.message}")
|
|
351
351
|
}
|
|
352
|
-
|
|
352
|
+
} else {
|
|
353
|
+
// Handle the case where offlineUrl is null
|
|
354
|
+
println("Error: offlineUrl is null")
|
|
353
355
|
}
|
|
354
356
|
}
|
|
355
|
-
|
|
357
|
+
null
|
|
358
|
+
}
|
|
356
359
|
}
|
|
357
360
|
|
|
361
|
+
|
|
358
362
|
private fun toSubtitleMimeType(format: String?): String? {
|
|
359
363
|
if (format == null) {
|
|
360
364
|
return null
|
|
@@ -55,5 +55,29 @@ object Util {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
fun <T> retryWithDelay(
|
|
59
|
+
maxRetries: Int,
|
|
60
|
+
delayMillis: Long,
|
|
61
|
+
block: () -> T?
|
|
62
|
+
): T? {
|
|
63
|
+
var retryCount = 0
|
|
64
|
+
var result: T? = null
|
|
65
|
+
|
|
66
|
+
while (result == null && retryCount < maxRetries) {
|
|
67
|
+
result = block()
|
|
68
|
+
if (result == null) {
|
|
69
|
+
retryCount++
|
|
70
|
+
try {
|
|
71
|
+
Thread.sleep(delayMillis)
|
|
72
|
+
} catch (e: InterruptedException) {
|
|
73
|
+
Thread.currentThread().interrupt()
|
|
74
|
+
return null
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return result
|
|
80
|
+
}
|
|
81
|
+
|
|
58
82
|
|
|
59
83
|
}
|
|
@@ -59,6 +59,7 @@ export declare namespace PentheraTypes {
|
|
|
59
59
|
vpid: string;
|
|
60
60
|
isReproduced?: boolean;
|
|
61
61
|
hasZoom?: boolean;
|
|
62
|
+
infoVideoPlayer?: IInfoVideoPlayer;
|
|
62
63
|
}
|
|
63
64
|
interface Classification {
|
|
64
65
|
code: string;
|
|
@@ -160,5 +161,11 @@ export declare namespace PentheraTypes {
|
|
|
160
161
|
maxStorageAllowed?: string;
|
|
161
162
|
minimumLowBandWidth?: string;
|
|
162
163
|
}
|
|
164
|
+
interface IInfoVideoPlayer {
|
|
165
|
+
title: string;
|
|
166
|
+
description: string;
|
|
167
|
+
advisoryClassification: string;
|
|
168
|
+
advisoryDescription: string;
|
|
169
|
+
}
|
|
163
170
|
}
|
|
164
171
|
//# sourceMappingURL=PentheraTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,UAAiB,eAAe;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,WAAW;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC;QACf,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED,UAAiB,QAAQ;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAAG,EAAE,CAAC;QAC9C,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,UAAiB,eAAe;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,WAAW;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC;QACf,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED,UAAiB,QAAQ;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,GAAG,EAAE,CAAC;QAC9C,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,eAAe,CAAC,EAAE,gBAAgB,CAAC;KACpC;IAED,UAAiB,cAAc;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd;IAED,UAAiB,QAAQ;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf;IAED,UAAiB,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC;KACf;IAED,UAAiB,KAAK;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;IAED,UAAiB,SAAS;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ;IAED,UAAiB,UAAU;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB;IAED,UAAiB,cAAc;QAC7B,IAAI,EAAE,WAAW,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,0BAA0B,EAAE,MAAM,CAAC;YACnC,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH;IAED,UAAiB,kBAAkB;QACjC,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,yBAAyB,EAAE,MAAM,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,yBAAyB,EAAE,MAAM,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,0BAA0B,EAAE,MAAM,CAAC;QACnC,wBAAwB,EAAE,MAAM,CAAC;QACjC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;IAED,UAAiB,qBAAqB;QACpC,WAAW,EAAE,MAAM,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb;IAED,UAAiB,iBAAiB;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;IAED,UAAiB,gBAAgB;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CACF"}
|
package/package.json
CHANGED
|
@@ -59,6 +59,7 @@ export declare namespace PentheraTypes {
|
|
|
59
59
|
vpid: string;
|
|
60
60
|
isReproduced?: boolean;
|
|
61
61
|
hasZoom?: boolean;
|
|
62
|
+
infoVideoPlayer?: IInfoVideoPlayer;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
export interface Classification {
|
|
@@ -170,4 +171,11 @@ export declare namespace PentheraTypes {
|
|
|
170
171
|
maxStorageAllowed?: string;
|
|
171
172
|
minimumLowBandWidth?: string;
|
|
172
173
|
}
|
|
174
|
+
|
|
175
|
+
export interface IInfoVideoPlayer {
|
|
176
|
+
title: string;
|
|
177
|
+
description: string;
|
|
178
|
+
advisoryClassification: string;
|
|
179
|
+
advisoryDescription: string;
|
|
180
|
+
}
|
|
173
181
|
}
|