expo-libmpv 0.5.4 → 0.5.6
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.
|
@@ -299,7 +299,6 @@ class LibmpvRenderer(
|
|
|
299
299
|
try {
|
|
300
300
|
loadedUrl = url
|
|
301
301
|
MPVLib.command(arrayOf("loadfile", url, "replace"))
|
|
302
|
-
applyContinuousState()
|
|
303
302
|
} catch (e: Exception) {
|
|
304
303
|
logException(e)
|
|
305
304
|
}
|
|
@@ -319,22 +318,24 @@ class LibmpvRenderer(
|
|
|
319
318
|
}
|
|
320
319
|
|
|
321
320
|
private fun applyDeferredState() {
|
|
322
|
-
if (!
|
|
321
|
+
if (!session.hasFileLoaded || !surfaceAttached || state != State.ACTIVE) {
|
|
323
322
|
return
|
|
324
323
|
}
|
|
325
324
|
|
|
326
325
|
session.seekToSeconds?.let { target ->
|
|
327
326
|
if (session.needsApply(LibmpvSession.MpvIntent.SEEK)) {
|
|
328
|
-
val timePos = MPVLib.getPropertyDouble("time-pos")
|
|
329
327
|
val seekable = MPVLib.getPropertyBoolean("seekable") == true
|
|
330
328
|
|
|
331
|
-
if (seekable &&
|
|
329
|
+
if (seekable && surfaceAttached && state == State.ACTIVE) {
|
|
330
|
+
MPVLib.command(arrayOf("set", "pause", "yes"))
|
|
332
331
|
MPVLib.command(arrayOf("seek", target.toString(), "absolute"))
|
|
332
|
+
MPVLib.command(arrayOf("set", "pause", if (session.isPlaying) "no" else "yes"))
|
|
333
333
|
session.markApplied(LibmpvSession.MpvIntent.SEEK)
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
+
|
|
338
339
|
session.selectedAudioTrack?.let {
|
|
339
340
|
if (session.needsApply(LibmpvSession.MpvIntent.AUDIO_TRACK)) {
|
|
340
341
|
val aid = if (it == -1) "no" else (it + 1).toString()
|
|
@@ -382,7 +383,10 @@ class LibmpvRenderer(
|
|
|
382
383
|
|
|
383
384
|
override fun event(eventId: Int) {
|
|
384
385
|
when (eventId) {
|
|
385
|
-
MPVLib.MpvEvent.MPV_EVENT_FILE_LOADED
|
|
386
|
+
MPVLib.MpvEvent.MPV_EVENT_FILE_LOADED -> {
|
|
387
|
+
session.hasFileLoaded = true
|
|
388
|
+
}
|
|
389
|
+
|
|
386
390
|
MPVLib.MpvEvent.MPV_EVENT_PLAYBACK_RESTART -> {
|
|
387
391
|
session.hasFileLoaded = true
|
|
388
392
|
applyDeferredState()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibmpvView.d.ts","sourceRoot":"","sources":["../src/LibmpvView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAkC7E,eAAO,MAAM,qBAAqB,EAAE,MAA0B,CAAA;AAE9D,eAAO,MAAM,0BAA0B,EAAE,MAAiD,CAAA;AAE1F,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"LibmpvView.d.ts","sourceRoot":"","sources":["../src/LibmpvView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAkC7E,eAAO,MAAM,qBAAqB,EAAE,MAA0B,CAAA;AAE9D,eAAO,MAAM,0BAA0B,EAAE,MAAiD,CAAA;AAE1F,eAAO,MAAM,UAAU,8GA2DrB,CAAA;AAEF,eAAe,UAAU,CAAA"}
|
package/build/LibmpvView.js
CHANGED
|
@@ -40,31 +40,30 @@ export const LibmpvView = React.forwardRef((props, parentRef) => {
|
|
|
40
40
|
};
|
|
41
41
|
}, []);
|
|
42
42
|
// Pass mpv events and logs back up to the parent
|
|
43
|
-
const onLogEvent = (
|
|
44
|
-
if (props.onLibmpvEvent) {
|
|
45
|
-
|
|
46
|
-
libmpvEvent = libmpvEvent.nativeEvent;
|
|
47
|
-
}
|
|
48
|
-
if (libmpvEvent.eventId) {
|
|
49
|
-
libmpvEvent.value = parseInt(libmpvEvent.eventId, 10);
|
|
50
|
-
libmpvEvent.eventKind = EVENT_LOOKUP[libmpvEvent.eventId];
|
|
51
|
-
}
|
|
52
|
-
else if (libmpvEvent.kind === 'long' || libmpvEvent.kind === 'double') {
|
|
53
|
-
libmpvEvent.value = Number(libmpvEvent.value);
|
|
54
|
-
}
|
|
55
|
-
else if (libmpvEvent.kind === 'boolean') {
|
|
56
|
-
libmpvEvent.value = libmpvEvent.value === 'true';
|
|
57
|
-
}
|
|
58
|
-
return props.onLibmpvEvent(libmpvEvent);
|
|
43
|
+
const onLogEvent = (e) => {
|
|
44
|
+
if (!props.onLibmpvEvent) {
|
|
45
|
+
return;
|
|
59
46
|
}
|
|
47
|
+
const src = e?.nativeEvent ?? e;
|
|
48
|
+
const libmpvEvent = { ...src };
|
|
49
|
+
if (libmpvEvent.eventId) {
|
|
50
|
+
libmpvEvent.value = parseInt(libmpvEvent.eventId, 10);
|
|
51
|
+
libmpvEvent.eventKind = EVENT_LOOKUP[libmpvEvent.eventId];
|
|
52
|
+
}
|
|
53
|
+
else if (libmpvEvent.kind === 'long' || libmpvEvent.kind === 'double') {
|
|
54
|
+
libmpvEvent.value = Number(libmpvEvent.value);
|
|
55
|
+
}
|
|
56
|
+
else if (libmpvEvent.kind === 'boolean') {
|
|
57
|
+
libmpvEvent.value = libmpvEvent.value === 'true';
|
|
58
|
+
}
|
|
59
|
+
return props.onLibmpvEvent(libmpvEvent);
|
|
60
60
|
};
|
|
61
|
-
const onLibmpvLog = (
|
|
62
|
-
if (props.onLibmpvLog) {
|
|
63
|
-
|
|
64
|
-
libmpvLog = libmpvLog.nativeEvent;
|
|
65
|
-
}
|
|
66
|
-
return props.onLibmpvLog(libmpvLog);
|
|
61
|
+
const onLibmpvLog = (e) => {
|
|
62
|
+
if (!props.onLibmpvLog) {
|
|
63
|
+
return;
|
|
67
64
|
}
|
|
65
|
+
const src = e?.nativeEvent ?? e;
|
|
66
|
+
return props.onLibmpvLog({ ...src });
|
|
68
67
|
};
|
|
69
68
|
// The order props are handled in the native code is non-deterministic
|
|
70
69
|
// Each native prop setter checks to see if all required props are set
|
package/build/LibmpvView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibmpvView.js","sourceRoot":"","sources":["../src/LibmpvView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,GAAQ;IAClB,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;KACP;CACF,CAAC;AAEF,MAAM,YAAY,GAAQ;IACxB,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,eAAe;IAClB,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,aAAa;IAChB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,kBAAkB;IACtB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,MAAM;CACX,CAAA;AAED,MAAM,gBAAgB,GAAyC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,qBAAqB,GAAW,iBAAiB,CAAA;AAE9D,MAAM,CAAC,MAAM,0BAA0B,GAAW,wCAAwC,CAAA;AAE1F,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAA2C,CAAC,KAAU,EAAE,SAAc,EAAE,EAAE;IAClH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAChC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iDAAiD;IACjD,MAAM,UAAU,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"LibmpvView.js","sourceRoot":"","sources":["../src/LibmpvView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { requireNativeView } from 'expo';\nimport * as React from 'react';\nimport { LibmpvViewProps, LibmpvViewNativeMethods } from './LibmpvViewTypes';\n\nconst styles: any = {\n videoPlayer: {\n position: \"absolute\",\n left: 0,\n bottom: 0,\n right: 0,\n top: 0\n }\n};\n\nconst EVENT_LOOKUP: any = {\n 0: 'NONE',\n 1: 'SHUTDOWN',\n 2: 'LOG_MESSAGE',\n 3: 'GET_PROPERTY_REPLY',\n 4: 'SET_PROPERTY_REPLY',\n 5: 'COMMAND_REPLY',\n 6: 'START_FILE',\n 7: 'END_FILE',\n 8: 'FILE_LOADED',\n 16: 'CLIENT_MESSAGE',\n 17: 'VIDEO_RECONFIG',\n 18: 'AUDIO_RECONFIG',\n 20: 'SEEK',\n 21: 'PLAYBACK_RESTART',\n 22: 'PROPERTY_CHANGE',\n 24: 'QUEUE_OVERFLOW',\n 25: 'HOOK'\n}\n\nconst LibmpvViewNative: React.ComponentType<LibmpvViewProps> = requireNativeView('LibmpvView');\n\nexport const DEFAULT_DECODING_MODE: string = \"mediacodec-copy\"\n\nexport const DEFAULT_ACCELERATED_CODECS: string = \"h264,hevc,mpeg4,mpeg2video,vp8,vp9,av1\"\n\nexport const LibmpvView = React.forwardRef<LibmpvViewNativeMethods, LibmpvViewProps>((props: any, parentRef: any) => {\n React.useEffect(() => {\n return () => {\n if (parentRef?.current?.cleanup) {\n parentRef.current.cleanup();\n }\n };\n }, []);\n\n // Pass mpv events and logs back up to the parent\n const onLogEvent = (e: any) => {\n if (!props.onLibmpvEvent) {\n return\n }\n\n const src = e?.nativeEvent ?? e;\n const libmpvEvent = { ...src };\n\n if (libmpvEvent.eventId) {\n libmpvEvent.value = parseInt(libmpvEvent.eventId, 10);\n libmpvEvent.eventKind = EVENT_LOOKUP[libmpvEvent.eventId];\n } else if (libmpvEvent.kind === 'long' || libmpvEvent.kind === 'double') {\n libmpvEvent.value = Number(libmpvEvent.value);\n } else if (libmpvEvent.kind === 'boolean') {\n libmpvEvent.value = libmpvEvent.value === 'true';\n }\n\n return props.onLibmpvEvent(libmpvEvent);\n };\n\n const onLibmpvLog = (e: any) => {\n if (!props.onLibmpvLog) {\n return\n }\n const src = e?.nativeEvent ?? e\n return props.onLibmpvLog({ ...src });\n }\n\n // The order props are handled in the native code is non-deterministic\n // Each native prop setter checks to see if all required props are set\n // Only then will it try to create an instance of mpv\n\n return <LibmpvViewNative\n ref={parentRef}\n style={props.surfaceStyle ? props.surfaceStyle : styles.videoPlayer}\n videoOutput={props.videoOutput}\n playUrl={props.playUrl}\n isPlaying={props.isPlaying}\n decodingMode={props.decodingMode}\n acceleratedCodecs={props.acceleratedCodecs}\n videoSync={props.videoSync}\n surfaceWidth={props.surfaceWidth}\n surfaceHeight={props.surfaceHeight}\n seekToSeconds={props.seekToSeconds}\n selectedAudioTrack={props.selectedAudioTrack}\n selectedSubtitleTrack={props.selectedSubtitleTrack}\n onLibmpvEvent={onLogEvent}\n onLibmpvLog={onLibmpvLog}\n />\n})\n\nexport default LibmpvView"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-libmpv",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"description": "A libmpv Fabric component for Android",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"homepage": "https://github.com/XBigTK13X/expo-libmpv#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"expo-build-properties": "1.0.
|
|
31
|
+
"expo-build-properties": "1.0.10"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/react": "~19.1.10",
|
|
35
|
-
"expo": "54.0.
|
|
35
|
+
"expo": "54.0.29",
|
|
36
36
|
"expo-module-scripts": "^4.1.10",
|
|
37
37
|
"react": "19.1.0",
|
|
38
38
|
"react-native": "0.81.5"
|
package/src/LibmpvView.tsx
CHANGED
|
@@ -48,31 +48,32 @@ export const LibmpvView = React.forwardRef<LibmpvViewNativeMethods, LibmpvViewPr
|
|
|
48
48
|
}, []);
|
|
49
49
|
|
|
50
50
|
// Pass mpv events and logs back up to the parent
|
|
51
|
-
const onLogEvent = (
|
|
52
|
-
if (props.onLibmpvEvent) {
|
|
53
|
-
|
|
54
|
-
libmpvEvent = libmpvEvent.nativeEvent
|
|
55
|
-
}
|
|
56
|
-
if (libmpvEvent.eventId) {
|
|
57
|
-
libmpvEvent.value = parseInt(libmpvEvent.eventId, 10)
|
|
58
|
-
libmpvEvent.eventKind = EVENT_LOOKUP[libmpvEvent.eventId]
|
|
59
|
-
}
|
|
60
|
-
else if (libmpvEvent.kind === 'long' || libmpvEvent.kind === 'double') {
|
|
61
|
-
libmpvEvent.value = Number(libmpvEvent.value)
|
|
62
|
-
}
|
|
63
|
-
else if (libmpvEvent.kind === 'boolean') {
|
|
64
|
-
libmpvEvent.value = libmpvEvent.value === 'true'
|
|
65
|
-
}
|
|
66
|
-
return props.onLibmpvEvent(libmpvEvent)
|
|
51
|
+
const onLogEvent = (e: any) => {
|
|
52
|
+
if (!props.onLibmpvEvent) {
|
|
53
|
+
return
|
|
67
54
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
55
|
+
|
|
56
|
+
const src = e?.nativeEvent ?? e;
|
|
57
|
+
const libmpvEvent = { ...src };
|
|
58
|
+
|
|
59
|
+
if (libmpvEvent.eventId) {
|
|
60
|
+
libmpvEvent.value = parseInt(libmpvEvent.eventId, 10);
|
|
61
|
+
libmpvEvent.eventKind = EVENT_LOOKUP[libmpvEvent.eventId];
|
|
62
|
+
} else if (libmpvEvent.kind === 'long' || libmpvEvent.kind === 'double') {
|
|
63
|
+
libmpvEvent.value = Number(libmpvEvent.value);
|
|
64
|
+
} else if (libmpvEvent.kind === 'boolean') {
|
|
65
|
+
libmpvEvent.value = libmpvEvent.value === 'true';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return props.onLibmpvEvent(libmpvEvent);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const onLibmpvLog = (e: any) => {
|
|
72
|
+
if (!props.onLibmpvLog) {
|
|
73
|
+
return
|
|
75
74
|
}
|
|
75
|
+
const src = e?.nativeEvent ?? e
|
|
76
|
+
return props.onLibmpvLog({ ...src });
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
// The order props are handled in the native code is non-deterministic
|