@draftbit/core 52.1.4 → 52.1.5
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/lib/commonjs/components/MediaPlayer/VideoPlayer/VideoPlayer.js +1 -1
- package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js +15 -2
- package/lib/typescript/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js.map +1 -1
- package/lib/typescript/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js +15 -2
- package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.js.map +1 -1
- package/src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx +15 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _expoAv=require("expo-av");var _utilities=require("../../../utilities");var _MediaPlaybackWrapper=_interopRequireDefault(require("../MediaPlaybackWrapper"));var _MediaPlayerCommon=require("../MediaPlayerCommon");var _jsxRuntime=require("react/jsx-runtime");var _excluded=["style","resizeMode","posterResizeMode","onPlaybackStatusUpdate","onPlaybackFinish","source","playsInSilentModeIOS"];var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx";var triggerAudio=function(){var _ref=(0,_asyncToGenerator2.default)(function*(ref){if(ref&&ref!=null&&ref.current&&_reactNative.Platform.OS==="ios"){yield _expoAv.Audio.setAudioModeAsync({playsInSilentModeIOS:true});ref.current.play();}});return function triggerAudio(_x){return _ref.apply(this,arguments);};}();var VideoPlayer=_react.default.forwardRef(function(_ref2,ref){var style=_ref2.style,_ref2$resizeMode=_ref2.resizeMode,resizeMode=_ref2$resizeMode===void 0?"contain":_ref2$resizeMode,_ref2$posterResizeMod=_ref2.posterResizeMode,posterResizeMode=_ref2$posterResizeMod===void 0?"cover":_ref2$posterResizeMod,onPlaybackStatusUpdateProp=_ref2.onPlaybackStatusUpdate,onPlaybackFinish=_ref2.onPlaybackFinish,source=_ref2.source,_ref2$playsInSilentMo=_ref2.playsInSilentModeIOS,playsInSilentModeIOS=_ref2$playsInSilentMo===void 0?false:_ref2$playsInSilentMo,rest=(0,_objectWithoutProperties2.default)(_ref2,_excluded);var _React$useState=_react.default.useState(),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),videoMediaObject=_React$useState2[0],setVideoMediaObject=_React$useState2[1];var _React$useState3=_react.default.useState(false),_React$useState4=(0,_slicedToArray2.default)(_React$useState3,2),isPlaying=_React$useState4[0],setIsPlaying=_React$useState4[1];var _React$useState5=_react.default.useState(false),_React$useState6=(0,_slicedToArray2.default)(_React$useState5,2),isFullscreen=_React$useState6[0],setIsFullscreen=_React$useState6[1];var _React$useState7=_react.default.useState(),_React$useState8=(0,_slicedToArray2.default)(_React$useState7,2),currentSource=_React$useState8[0],setCurrentSource=_React$useState8[1];var mediaPlaybackWrapperRef=_react.default.useRef(null);var sizeStyles=(0,_utilities.extractSizeStyles)(style);var mappedResizeMode;switch(resizeMode){case"contain":mappedResizeMode=_expoAv.ResizeMode.CONTAIN;break;case"cover":mappedResizeMode=_expoAv.ResizeMode.COVER;break;case"stretch":mappedResizeMode=_expoAv.ResizeMode.STRETCH;break;}var onPlaybackStatusUpdate=function onPlaybackStatusUpdate(status){var mappedStatus=(0,_MediaPlayerCommon.mapToMediaPlayerStatus)(status);onPlaybackStatusUpdateProp==null||onPlaybackStatusUpdateProp(mappedStatus);if(status.isLoaded){if(status.didJustFinish){onPlaybackFinish==null||onPlaybackFinish();}setIsPlaying(status.isPlaying);}};var _onFullscreenUpdate=function onFullscreenUpdate(fullscreenUpdate){switch(fullscreenUpdate){case _expoAv.VideoFullscreenUpdate.PLAYER_DID_PRESENT:case _expoAv.VideoFullscreenUpdate.PLAYER_WILL_PRESENT:setIsFullscreen(true);break;case _expoAv.VideoFullscreenUpdate.PLAYER_DID_DISMISS:case _expoAv.VideoFullscreenUpdate.PLAYER_WILL_DISMISS:setIsFullscreen(false);break;}};var toggleFullscreen=_react.default.useCallback((0,_asyncToGenerator2.default)(function*(){if(isFullscreen){yield videoMediaObject==null?void 0:videoMediaObject.dismissFullscreenPlayer();}else{yield videoMediaObject==null?void 0:videoMediaObject.presentFullscreenPlayer();}}),[isFullscreen,videoMediaObject]);var updateAudioMode=_react.default.useCallback((0,_asyncToGenerator2.default)(function*(){try{yield _expoAv.Audio.setAudioModeAsync({playsInSilentModeIOS:playsInSilentModeIOS});}catch(e){console.error("Failed to set audio mode. Error details:",e);}}),[playsInSilentModeIOS]);_react.default.useEffect(function(){if(isPlaying)triggerAudio(mediaPlaybackWrapperRef);},[mediaPlaybackWrapperRef,isPlaying]);_react.default.useImperativeHandle(ref,function(){var _mediaPlaybackWrapper,_mediaPlaybackWrapper2,_mediaPlaybackWrapper3,_mediaPlaybackWrapper4;return{toggleFullscreen:toggleFullscreen,seekToPosition:((_mediaPlaybackWrapper=mediaPlaybackWrapperRef.current)==null?void 0:_mediaPlaybackWrapper.seekToPosition)||function(){},togglePlayback:((_mediaPlaybackWrapper2=mediaPlaybackWrapperRef.current)==null?void 0:_mediaPlaybackWrapper2.togglePlayback)||function(){},pause:((_mediaPlaybackWrapper3=mediaPlaybackWrapperRef.current)==null?void 0:_mediaPlaybackWrapper3.pause)||function(){},play:((_mediaPlaybackWrapper4=mediaPlaybackWrapperRef.current)==null?void 0:_mediaPlaybackWrapper4.play)||function(){}};},[toggleFullscreen,isPlaying]);(0,_MediaPlayerCommon.useSourceDeepCompareEffect)(function(){var updateSource=function(){var _ref5=(0,_asyncToGenerator2.default)(function*(){var finalSource=yield(0,_MediaPlayerCommon.normalizeBase64Source)(source,"video");setCurrentSource(finalSource);});return function updateSource(){return _ref5.apply(this,arguments);};}();updateSource();},[source]);return(0,_jsxRuntime.jsx)(_MediaPlaybackWrapper.default,{media:videoMediaObject,isPlaying:isPlaying,ref:mediaPlaybackWrapperRef,onTogglePlayback:updateAudioMode,children:(0,_jsxRuntime.jsx)(_expoAv.Video,Object.assign({ref:function ref(component){return setVideoMediaObject(component);},style:style,videoStyle:sizeStyles,resizeMode:mappedResizeMode,posterStyle:[sizeStyles,{resizeMode:posterResizeMode}],onPlaybackStatusUpdate:onPlaybackStatusUpdate,onFullscreenUpdate:function onFullscreenUpdate(e){return _onFullscreenUpdate(e.fullscreenUpdate);},source:currentSource},rest))});});var _default=exports.default=VideoPlayer;
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { Platform } from "react-native";
|
|
2
3
|
import { Video as VideoPlayerComponent, ResizeMode as ExpoResizeMode, VideoFullscreenUpdate, Audio, } from "expo-av";
|
|
3
4
|
import { extractSizeStyles } from "../../../utilities";
|
|
4
5
|
import MediaPlaybackWrapper from "../MediaPlaybackWrapper";
|
|
5
6
|
import { mapToMediaPlayerStatus, normalizeBase64Source, useSourceDeepCompareEffect, } from "../MediaPlayerCommon";
|
|
7
|
+
// Setting playsInSilentModeIOS prop directly on Video component is unreliable,
|
|
8
|
+
// so we need to set the audio mode globally before playing.
|
|
9
|
+
// See:
|
|
10
|
+
// https://github.com/expo/expo/issues/7485
|
|
11
|
+
// https://stackoverflow.com/questions/57371543/how-to-fix-video-play-but-dont-have-sound-on-ios-with-expo
|
|
12
|
+
const triggerAudio = async (ref) => {
|
|
13
|
+
if (ref && (ref === null || ref === void 0 ? void 0 : ref.current) && Platform.OS === "ios") {
|
|
14
|
+
await Audio.setAudioModeAsync({ playsInSilentModeIOS: true });
|
|
15
|
+
ref.current.play();
|
|
16
|
+
}
|
|
17
|
+
};
|
|
6
18
|
const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterResizeMode = "cover", onPlaybackStatusUpdate: onPlaybackStatusUpdateProp, onPlaybackFinish, source, playsInSilentModeIOS = false, ...rest }, ref) => {
|
|
7
19
|
const [videoMediaObject, setVideoMediaObject] = React.useState();
|
|
8
20
|
const [isPlaying, setIsPlaying] = React.useState(false);
|
|
@@ -63,8 +75,9 @@ const VideoPlayer = React.forwardRef(({ style, resizeMode = "contain", posterRes
|
|
|
63
75
|
}
|
|
64
76
|
}, [playsInSilentModeIOS]);
|
|
65
77
|
React.useEffect(() => {
|
|
66
|
-
|
|
67
|
-
|
|
78
|
+
if (isPlaying)
|
|
79
|
+
triggerAudio(mediaPlaybackWrapperRef);
|
|
80
|
+
}, [mediaPlaybackWrapperRef, isPlaying]);
|
|
68
81
|
React.useImperativeHandle(ref, () => {
|
|
69
82
|
var _a, _b, _c, _d;
|
|
70
83
|
return ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../../../../../src/components/MediaPlayer/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"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"}
|