@pigeonmal/react-native-video 7.0.0-beta.16 → 7.0.0-beta.18
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/README.md +12 -3
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/twg/video/core/utils/TvDetector.kt +10 -5
- package/android/src/main/java/com/twg/video/hybrids/videoplayer/HybridVideoPlayer.kt +3 -0
- package/android/src/stubs/cronet/androidx/media3/datasource/cronet/ByteArrayUploadDataProvider.java +54 -0
- package/android/src/stubs/cronet/androidx/media3/datasource/cronet/CronetDataSource.java +1246 -0
- package/android/src/stubs/cronet/androidx/media3/datasource/cronet/CronetEngineWrapper.java +84 -0
- package/android/src/stubs/cronet/androidx/media3/datasource/cronet/CronetUtil.java +186 -0
- package/lib/commonjs/core/VideoPlayerEvents.js +1 -1
- package/lib/commonjs/core/VideoPlayerEvents.js.map +1 -1
- package/lib/module/core/VideoPlayerEvents.js +2 -2
- package/lib/module/core/VideoPlayerEvents.js.map +1 -1
- package/package.json +2 -2
- package/src/core/VideoPlayerEvents.ts +2 -2
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2017 The Android Open Source Project
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
package androidx.media3.datasource.cronet;
|
|
17
|
+
|
|
18
|
+
import android.content.Context;
|
|
19
|
+
import androidx.annotation.Nullable;
|
|
20
|
+
import androidx.media3.common.util.UnstableApi;
|
|
21
|
+
import org.chromium.net.CronetEngine;
|
|
22
|
+
import org.chromium.net.CronetProvider;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* A wrapper class for a {@link CronetEngine}.
|
|
26
|
+
*
|
|
27
|
+
* @deprecated Use {@link CronetEngine} directly. See the <a
|
|
28
|
+
* href="https://developer.android.com/guide/topics/connectivity/cronet/start">Android developer
|
|
29
|
+
* guide</a> to learn how to instantiate a {@link CronetEngine} for use by your application. You
|
|
30
|
+
* can also use {@link CronetUtil#buildCronetEngine} to build a {@link CronetEngine} suitable
|
|
31
|
+
* for use with {@link CronetDataSource}.
|
|
32
|
+
*/
|
|
33
|
+
@Deprecated
|
|
34
|
+
@UnstableApi
|
|
35
|
+
public final class CronetEngineWrapper {
|
|
36
|
+
|
|
37
|
+
@Nullable private final CronetEngine cronetEngine;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Creates a wrapper for a {@link CronetEngine} built using the most suitable {@link
|
|
41
|
+
* CronetProvider}. When natively bundled Cronet and GMSCore Cronet are both available, the
|
|
42
|
+
* natively bundled provider is preferred.
|
|
43
|
+
*
|
|
44
|
+
* @param context A context.
|
|
45
|
+
*/
|
|
46
|
+
public CronetEngineWrapper(Context context) {
|
|
47
|
+
this(context, /* userAgent= */ null, /* preferGMSCoreCronet= */ false);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Creates a wrapper for a {@link CronetEngine} built using the most suitable {@link
|
|
52
|
+
* CronetProvider}. When natively bundled Cronet and GMSCore Cronet are both available, {@code
|
|
53
|
+
* preferGMSCoreCronet} determines which is preferred.
|
|
54
|
+
*
|
|
55
|
+
* @param context A context.
|
|
56
|
+
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
|
|
57
|
+
* {@link CronetEngine}.
|
|
58
|
+
* @param preferGooglePlayServices Whether Cronet from Google Play Services should be preferred
|
|
59
|
+
* over Cronet Embedded, if both are available.
|
|
60
|
+
*/
|
|
61
|
+
public CronetEngineWrapper(
|
|
62
|
+
Context context, @Nullable String userAgent, boolean preferGooglePlayServices) {
|
|
63
|
+
cronetEngine = CronetUtil.buildCronetEngine(context, userAgent, preferGooglePlayServices);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Creates a wrapper for an existing {@link CronetEngine}.
|
|
68
|
+
*
|
|
69
|
+
* @param cronetEngine The CronetEngine to wrap.
|
|
70
|
+
*/
|
|
71
|
+
public CronetEngineWrapper(CronetEngine cronetEngine) {
|
|
72
|
+
this.cronetEngine = cronetEngine;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Returns the wrapped {@link CronetEngine}.
|
|
77
|
+
*
|
|
78
|
+
* @return The CronetEngine, or null if no CronetEngine is available.
|
|
79
|
+
*/
|
|
80
|
+
@Nullable
|
|
81
|
+
/* package */ CronetEngine getCronetEngine() {
|
|
82
|
+
return cronetEngine;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2021 The Android Open Source Project
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
package androidx.media3.datasource.cronet;
|
|
17
|
+
|
|
18
|
+
import static java.lang.Math.min;
|
|
19
|
+
|
|
20
|
+
import android.content.Context;
|
|
21
|
+
import androidx.annotation.Nullable;
|
|
22
|
+
import androidx.media3.common.util.Log;
|
|
23
|
+
import androidx.media3.common.util.UnstableApi;
|
|
24
|
+
import androidx.media3.common.util.Util;
|
|
25
|
+
import androidx.media3.datasource.DefaultHttpDataSource;
|
|
26
|
+
import java.util.ArrayList;
|
|
27
|
+
import java.util.Collections;
|
|
28
|
+
import java.util.Comparator;
|
|
29
|
+
import java.util.List;
|
|
30
|
+
import org.chromium.net.CronetEngine;
|
|
31
|
+
import org.chromium.net.CronetProvider;
|
|
32
|
+
|
|
33
|
+
/** Cronet utility methods. */
|
|
34
|
+
public final class CronetUtil {
|
|
35
|
+
|
|
36
|
+
private static final String TAG = "CronetUtil";
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Builds a {@link CronetEngine} suitable for use with {@link CronetDataSource}. When choosing a
|
|
40
|
+
* {@link CronetProvider Cronet provider} to build the {@link CronetEngine}, disabled providers
|
|
41
|
+
* are not considered. Neither are fallback providers, since it's more efficient to use {@link
|
|
42
|
+
* DefaultHttpDataSource} than it is to use {@link CronetDataSource} with a fallback {@link
|
|
43
|
+
* CronetEngine}.
|
|
44
|
+
*
|
|
45
|
+
* <p>Note that it's recommended for applications to create only one instance of {@link
|
|
46
|
+
* CronetEngine}, so if your application already has an instance for performing other networking,
|
|
47
|
+
* then that instance should be used and calling this method is unnecessary. See the <a
|
|
48
|
+
* href="https://developer.android.com/guide/topics/connectivity/cronet/start">Android developer
|
|
49
|
+
* guide</a> to learn more about using Cronet for network operations.
|
|
50
|
+
*
|
|
51
|
+
* @param context A context.
|
|
52
|
+
* @return The {@link CronetEngine}, or {@code null} if no suitable engine could be built.
|
|
53
|
+
*/
|
|
54
|
+
@Nullable
|
|
55
|
+
public static CronetEngine buildCronetEngine(Context context) {
|
|
56
|
+
return buildCronetEngine(context, /* userAgent= */ null, /* preferGooglePlayServices= */ false);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Builds a {@link CronetEngine} suitable for use with {@link CronetDataSource}. When choosing a
|
|
61
|
+
* {@link CronetProvider Cronet provider} to build the {@link CronetEngine}, disabled providers
|
|
62
|
+
* are not considered. Neither are fallback providers, since it's more efficient to use {@link
|
|
63
|
+
* DefaultHttpDataSource} than it is to use {@link CronetDataSource} with a fallback {@link
|
|
64
|
+
* CronetEngine}.
|
|
65
|
+
*
|
|
66
|
+
* <p>Note that it's recommended for applications to create only one instance of {@link
|
|
67
|
+
* CronetEngine}, so if your application already has an instance for performing other networking,
|
|
68
|
+
* then that instance should be used and calling this method is unnecessary. See the <a
|
|
69
|
+
* href="https://developer.android.com/guide/topics/connectivity/cronet/start">Android developer
|
|
70
|
+
* guide</a> to learn more about using Cronet for network operations.
|
|
71
|
+
*
|
|
72
|
+
* @param context A context.
|
|
73
|
+
* @param userAgent A default user agent, or {@code null} to use a default user agent of the
|
|
74
|
+
* {@link CronetEngine}.
|
|
75
|
+
* @param preferGooglePlayServices Whether Cronet from Google Play Services should be preferred
|
|
76
|
+
* over Cronet Embedded, if both are available.
|
|
77
|
+
* @return The {@link CronetEngine}, or {@code null} if no suitable engine could be built.
|
|
78
|
+
*/
|
|
79
|
+
@UnstableApi
|
|
80
|
+
@Nullable
|
|
81
|
+
public static CronetEngine buildCronetEngine(
|
|
82
|
+
Context context, @Nullable String userAgent, boolean preferGooglePlayServices) {
|
|
83
|
+
List<CronetProvider> cronetProviders = new ArrayList<>(CronetProvider.getAllProviders(context));
|
|
84
|
+
// Remove disabled and fallback Cronet providers from list.
|
|
85
|
+
for (int i = cronetProviders.size() - 1; i >= 0; i--) {
|
|
86
|
+
if (!cronetProviders.get(i).isEnabled()
|
|
87
|
+
|| CronetProvider.PROVIDER_NAME_FALLBACK.equals(cronetProviders.get(i).getName())) {
|
|
88
|
+
cronetProviders.remove(i);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Sort remaining providers by type and version.
|
|
92
|
+
CronetProviderComparator providerComparator =
|
|
93
|
+
new CronetProviderComparator(preferGooglePlayServices);
|
|
94
|
+
Collections.sort(cronetProviders, providerComparator);
|
|
95
|
+
for (int i = 0; i < cronetProviders.size(); i++) {
|
|
96
|
+
String providerName = cronetProviders.get(i).getName();
|
|
97
|
+
try {
|
|
98
|
+
CronetEngine.Builder cronetEngineBuilder = cronetProviders.get(i).createBuilder();
|
|
99
|
+
if (userAgent != null) {
|
|
100
|
+
cronetEngineBuilder.setUserAgent(userAgent);
|
|
101
|
+
}
|
|
102
|
+
CronetEngine cronetEngine = cronetEngineBuilder.build();
|
|
103
|
+
Log.d(TAG, "CronetEngine built using " + providerName);
|
|
104
|
+
return cronetEngine;
|
|
105
|
+
} catch (SecurityException e) {
|
|
106
|
+
Log.w(
|
|
107
|
+
TAG,
|
|
108
|
+
"Failed to build CronetEngine. Please check that the process has "
|
|
109
|
+
+ "android.permission.ACCESS_NETWORK_STATE.");
|
|
110
|
+
} catch (UnsatisfiedLinkError e) {
|
|
111
|
+
Log.w(
|
|
112
|
+
TAG,
|
|
113
|
+
"Failed to link Cronet binaries. Please check that native Cronet binaries are"
|
|
114
|
+
+ "bundled into your app.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
Log.w(TAG, "CronetEngine could not be built.");
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private CronetUtil() {}
|
|
122
|
+
|
|
123
|
+
private static class CronetProviderComparator implements Comparator<CronetProvider> {
|
|
124
|
+
|
|
125
|
+
/*
|
|
126
|
+
* Copy of com.google.android.gms.net.CronetProviderInstaller.PROVIDER_NAME. We have our own
|
|
127
|
+
* copy because GMSCore CronetProvider classes are unavailable in some (internal to Google)
|
|
128
|
+
* build configurations.
|
|
129
|
+
*/
|
|
130
|
+
private static final String GOOGLE_PLAY_SERVICES_PROVIDER_NAME =
|
|
131
|
+
"Google-Play-Services-Cronet-Provider";
|
|
132
|
+
|
|
133
|
+
private final boolean preferGooglePlayServices;
|
|
134
|
+
|
|
135
|
+
public CronetProviderComparator(boolean preferGooglePlayServices) {
|
|
136
|
+
this.preferGooglePlayServices = preferGooglePlayServices;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@Override
|
|
140
|
+
public int compare(CronetProvider providerLeft, CronetProvider providerRight) {
|
|
141
|
+
int providerComparison = getPriority(providerLeft) - getPriority(providerRight);
|
|
142
|
+
if (providerComparison != 0) {
|
|
143
|
+
return providerComparison;
|
|
144
|
+
}
|
|
145
|
+
return -compareVersionStrings(providerLeft.getVersion(), providerRight.getVersion());
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Returns the priority score for a Cronet provider, where a smaller score indicates higher
|
|
150
|
+
* priority.
|
|
151
|
+
*/
|
|
152
|
+
private int getPriority(CronetProvider provider) {
|
|
153
|
+
String providerName = provider.getName();
|
|
154
|
+
if (CronetProvider.PROVIDER_NAME_APP_PACKAGED.equals(providerName)) {
|
|
155
|
+
return 1;
|
|
156
|
+
} else if (GOOGLE_PLAY_SERVICES_PROVIDER_NAME.equals(providerName)) {
|
|
157
|
+
return preferGooglePlayServices ? 0 : 2;
|
|
158
|
+
} else {
|
|
159
|
+
return 3;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/** Compares version strings of format "12.123.35.23". */
|
|
164
|
+
private static int compareVersionStrings(
|
|
165
|
+
@Nullable String versionLeft, @Nullable String versionRight) {
|
|
166
|
+
if (versionLeft == null || versionRight == null) {
|
|
167
|
+
return 0;
|
|
168
|
+
}
|
|
169
|
+
String[] versionStringsLeft = Util.split(versionLeft, "\\.");
|
|
170
|
+
String[] versionStringsRight = Util.split(versionRight, "\\.");
|
|
171
|
+
int minLength = min(versionStringsLeft.length, versionStringsRight.length);
|
|
172
|
+
for (int i = 0; i < minLength; i++) {
|
|
173
|
+
if (!versionStringsLeft[i].equals(versionStringsRight[i])) {
|
|
174
|
+
try {
|
|
175
|
+
int versionIntLeft = Integer.parseInt(versionStringsLeft[i]);
|
|
176
|
+
int versionIntRight = Integer.parseInt(versionStringsRight[i]);
|
|
177
|
+
return versionIntLeft - versionIntRight;
|
|
178
|
+
} catch (NumberFormatException e) {
|
|
179
|
+
return 0;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return 0;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -31,7 +31,7 @@ class VideoPlayerEvents {
|
|
|
31
31
|
case 'onError':
|
|
32
32
|
this.jsEventListeners.onError ??= new Set();
|
|
33
33
|
this.jsEventListeners.onError.add(callback);
|
|
34
|
-
const nativeCallback = message => callback(new _VideoError.
|
|
34
|
+
const nativeCallback = message => callback(new _VideoError.VideoRuntimeError('player/playback-exception', message));
|
|
35
35
|
const removeNative = this.eventEmitter.addOnPlayerErrorListener(nativeCallback);
|
|
36
36
|
return {
|
|
37
37
|
remove: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Events","require","_VideoError","VideoPlayerEvents","jsEventListeners","supportedEvents","ALL_PLAYER_EVENTS","constructor","eventEmitter","triggerJSEvent","event","params","forEach","fn","addEventListener","callback","onError","Set","add","nativeCallback","message","
|
|
1
|
+
{"version":3,"names":["_Events","require","_VideoError","VideoPlayerEvents","jsEventListeners","supportedEvents","ALL_PLAYER_EVENTS","constructor","eventEmitter","triggerJSEvent","event","params","forEach","fn","addEventListener","callback","onError","Set","add","nativeCallback","message","VideoRuntimeError","removeNative","addOnPlayerErrorListener","remove","delete","addOnAudioBecomingNoisyListener","addOnAudioFocusChangeListener","addOnBandwidthUpdateListener","addOnBufferListener","addOnControlsVisibleChangeListener","addOnEndListener","addOnExternalPlaybackChangeListener","addOnLoadListener","addOnLoadStartListener","addOnPlaybackStateChangeListener","addOnPlaybackRateChangeListener","addOnProgressListener","addOnReadyToDisplayListener","addOnSeekListener","addOnTimedMetadataListener","addOnTextTrackDataChangedListener","addOnVolumeChangeListener","addOnStatusChangeListener","Error","clearAllEvents","clearAllListeners","exports"],"sourceRoot":"../../../src","sources":["core/VideoPlayerEvents.ts"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,iBAAiB,CAAC;EAEnBC,gBAAgB,GAEtB,CAAC,CAAC;EAEaC,eAAe,GAChCC,yBAAiB;EAEnBC,WAAWA,CAACC,YAAqC,EAAE;IACjD,IAAI,CAACA,YAAY,GAAGA,YAAY;EAClC;EAEUC,cAAcA,CACtBC,KAAY,EACZ,GAAGC,MAA8C,EACxC;IACT,IAAI,CAAC,IAAI,CAACP,gBAAgB,CAACM,KAAK,CAAC,EAAE,OAAO,KAAK;IAC/C,IAAI,CAACN,gBAAgB,CAACM,KAAK,CAAC,EAAEE,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,GAAGF,MAAM,CAAC,CAAC;IAC5D,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEG,gBAAgBA,CACdJ,KAAY,EACZK,QAA6B,EACP;IACtB,QAAQL,KAAK;MACX;MACA,KAAK,SAAS;QACZ,IAAI,CAACN,gBAAgB,CAACY,OAAO,KAAK,IAAIC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAACb,gBAAgB,CAACY,OAAO,CAACE,GAAG,CAC/BH,QACF,CAAC;QACD,MAAMI,cAAc,GAAIC,OAAe,IACpCL,QAAQ,CACP,IAAIM,6BAAiB,CAAC,2BAA2B,EAAED,OAAO,CAC5D,CAAC;QAEH,MAAME,YAAY,GAChB,IAAI,CAACd,YAAY,CAACe,wBAAwB,CAACJ,cAAc,CAAC;QAC5D,OAAO;UACLK,MAAM,EAAEA,CAAA,KAAM;YACZ,IAAI,CAACpB,gBAAgB,CAACY,OAAO,EAAES,MAAM,CACnCV,QACF,CAAC;YACDO,YAAY,CAACE,MAAM,CAAC,CAAC;UACvB;QACF,CAAC;MACH;MACA,KAAK,sBAAsB;QACzB,OAAO,IAAI,CAAChB,YAAY,CAACkB,+BAA+B,CACtDX,QACF,CAAC;MACH,KAAK,oBAAoB;QACvB,OAAO,IAAI,CAACP,YAAY,CAACmB,6BAA6B,CACpDZ,QACF,CAAC;MACH,KAAK,mBAAmB;QACtB,OAAO,IAAI,CAACP,YAAY,CAACoB,4BAA4B,CACnDb,QACF,CAAC;MACH,KAAK,UAAU;QACb,OAAO,IAAI,CAACP,YAAY,CAACqB,mBAAmB,CAC1Cd,QACF,CAAC;MACH,KAAK,yBAAyB;QAC5B,OAAO,IAAI,CAACP,YAAY,CAACsB,kCAAkC,CACzDf,QACF,CAAC;MACH,KAAK,OAAO;QACV,OAAO,IAAI,CAACP,YAAY,CAACuB,gBAAgB,CACvChB,QACF,CAAC;MACH,KAAK,0BAA0B;QAC7B,OAAO,IAAI,CAACP,YAAY,CAACwB,mCAAmC,CAC1DjB,QACF,CAAC;MACH,KAAK,QAAQ;QACX,OAAO,IAAI,CAACP,YAAY,CAACyB,iBAAiB,CACxClB,QACF,CAAC;MACH,KAAK,aAAa;QAChB,OAAO,IAAI,CAACP,YAAY,CAAC0B,sBAAsB,CAC7CnB,QACF,CAAC;MACH,KAAK,uBAAuB;QAC1B,OAAO,IAAI,CAACP,YAAY,CAAC2B,gCAAgC,CACvDpB,QACF,CAAC;MACH,KAAK,sBAAsB;QACzB,OAAO,IAAI,CAACP,YAAY,CAAC4B,+BAA+B,CACtDrB,QACF,CAAC;MACH,KAAK,YAAY;QACf,OAAO,IAAI,CAACP,YAAY,CAAC6B,qBAAqB,CAC5CtB,QACF,CAAC;MACH,KAAK,kBAAkB;QACrB,OAAO,IAAI,CAACP,YAAY,CAAC8B,2BAA2B,CAClDvB,QACF,CAAC;MACH,KAAK,QAAQ;QACX,OAAO,IAAI,CAACP,YAAY,CAAC+B,iBAAiB,CACxCxB,QACF,CAAC;MACH,KAAK,iBAAiB;QACpB,OAAO,IAAI,CAACP,YAAY,CAACgC,0BAA0B,CACjDzB,QACF,CAAC;MACH,KAAK,wBAAwB;QAC3B,OAAO,IAAI,CAACP,YAAY,CAACiC,iCAAiC,CACxD1B,QACF,CAAC;MACH,KAAK,gBAAgB;QACnB,OAAO,IAAI,CAACP,YAAY,CAACkC,yBAAyB,CAChD3B,QACF,CAAC;MACH,KAAK,gBAAgB;QACnB,OAAO,IAAI,CAACP,YAAY,CAACmC,yBAAyB,CAChD5B,QACF,CAAC;MACH;QACE,MAAM,IAAI6B,KAAK,CAAC,2CAA2ClC,KAAK,EAAE,CAAC;IACvE;EACF;;EAEA;AACF;AACA;EACEmC,cAAcA,CAAA,EAAG;IACf,IAAI,CAACzC,gBAAgB,GAAG,CAAC,CAAC;IAC1B,IAAI,CAACI,YAAY,CAACsC,iBAAiB,CAAC,CAAC;EACvC;AACF;AAACC,OAAA,CAAA5C,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { ALL_PLAYER_EVENTS } from "./types/Events.js";
|
|
4
|
-
import {
|
|
4
|
+
import { VideoRuntimeError } from "./types/VideoError.js";
|
|
5
5
|
export class VideoPlayerEvents {
|
|
6
6
|
jsEventListeners = {};
|
|
7
7
|
supportedEvents = ALL_PLAYER_EVENTS;
|
|
@@ -27,7 +27,7 @@ export class VideoPlayerEvents {
|
|
|
27
27
|
case 'onError':
|
|
28
28
|
this.jsEventListeners.onError ??= new Set();
|
|
29
29
|
this.jsEventListeners.onError.add(callback);
|
|
30
|
-
const nativeCallback = message => callback(new
|
|
30
|
+
const nativeCallback = message => callback(new VideoRuntimeError('player/playback-exception', message));
|
|
31
31
|
const removeNative = this.eventEmitter.addOnPlayerErrorListener(nativeCallback);
|
|
32
32
|
return {
|
|
33
33
|
remove: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ALL_PLAYER_EVENTS","
|
|
1
|
+
{"version":3,"names":["ALL_PLAYER_EVENTS","VideoRuntimeError","VideoPlayerEvents","jsEventListeners","supportedEvents","constructor","eventEmitter","triggerJSEvent","event","params","forEach","fn","addEventListener","callback","onError","Set","add","nativeCallback","message","removeNative","addOnPlayerErrorListener","remove","delete","addOnAudioBecomingNoisyListener","addOnAudioFocusChangeListener","addOnBandwidthUpdateListener","addOnBufferListener","addOnControlsVisibleChangeListener","addOnEndListener","addOnExternalPlaybackChangeListener","addOnLoadListener","addOnLoadStartListener","addOnPlaybackStateChangeListener","addOnPlaybackRateChangeListener","addOnProgressListener","addOnReadyToDisplayListener","addOnSeekListener","addOnTimedMetadataListener","addOnTextTrackDataChangedListener","addOnVolumeChangeListener","addOnStatusChangeListener","Error","clearAllEvents","clearAllListeners"],"sourceRoot":"../../../src","sources":["core/VideoPlayerEvents.ts"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pigeonmal/react-native-video",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.18",
|
|
4
4
|
"description": "<Video /> Component for React Native",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"react": "*",
|
|
95
95
|
"react-native": "*",
|
|
96
96
|
"react-native-nitro-modules": ">=0.27.2",
|
|
97
|
-
"@pigeonmal/react-native-nitro-fetch": ">=0.
|
|
97
|
+
"@pigeonmal/react-native-nitro-fetch": ">=0.2.0"
|
|
98
98
|
},
|
|
99
99
|
"release-it": {
|
|
100
100
|
"npm": {
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
type JSVideoPlayerEvents,
|
|
8
8
|
type AllPlayerEvents as PlayerEvents,
|
|
9
9
|
} from './types/Events';
|
|
10
|
-
import {
|
|
10
|
+
import { VideoRuntimeError } from './types/VideoError';
|
|
11
11
|
|
|
12
12
|
export class VideoPlayerEvents {
|
|
13
13
|
protected eventEmitter: VideoPlayerEventEmitter;
|
|
@@ -51,7 +51,7 @@ export class VideoPlayerEvents {
|
|
|
51
51
|
);
|
|
52
52
|
const nativeCallback = (message: string) =>
|
|
53
53
|
(callback as JSVideoPlayerEvents['onError'])(
|
|
54
|
-
new
|
|
54
|
+
new VideoRuntimeError('player/playback-exception', message)
|
|
55
55
|
);
|
|
56
56
|
|
|
57
57
|
const removeNative =
|