mirror of
https://gh-proxy.org/https://github.com/tiajinsha/JKVideo
synced 2026-07-07 23:18:38 +08:00
fix: lazy-require expo-screen-orientation for Expo Go compatibility
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
import React, { useState, useRef, useEffect } from 'react';
|
import React, { useState, useRef, useEffect } from 'react';
|
||||||
import { View, StyleSheet, Text, Platform, Modal, StatusBar, useWindowDimensions } from 'react-native';
|
import { View, StyleSheet, Text, Platform, Modal, StatusBar, useWindowDimensions } from 'react-native';
|
||||||
import * as ScreenOrientation from 'expo-screen-orientation';
|
// expo-screen-orientation requires a dev build; gracefully degrade in Expo Go
|
||||||
|
let ScreenOrientation: typeof import('expo-screen-orientation') | null = null;
|
||||||
|
try { ScreenOrientation = require('expo-screen-orientation'); } catch {}
|
||||||
import { NativeVideoPlayer } from './NativeVideoPlayer';
|
import { NativeVideoPlayer } from './NativeVideoPlayer';
|
||||||
import type { PlayUrlResponse, DanmakuItem } from '../services/types';
|
import type { PlayUrlResponse, DanmakuItem } from '../services/types';
|
||||||
|
|
||||||
@@ -25,19 +27,19 @@ export function VideoPlayer({ playData, qualities, currentQn, onQualityChange, o
|
|||||||
const handleEnterFullscreen = async () => {
|
const handleEnterFullscreen = async () => {
|
||||||
setFullscreen(true);
|
setFullscreen(true);
|
||||||
if (Platform.OS !== 'web')
|
if (Platform.OS !== 'web')
|
||||||
await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE_RIGHT);
|
await ScreenOrientation?.lockAsync(ScreenOrientation.OrientationLock.LANDSCAPE_RIGHT);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleExitFullscreen = async () => {
|
const handleExitFullscreen = async () => {
|
||||||
setFullscreen(false);
|
setFullscreen(false);
|
||||||
if (Platform.OS !== 'web')
|
if (Platform.OS !== 'web')
|
||||||
await ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);
|
await ScreenOrientation?.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
if (Platform.OS !== 'web')
|
if (Platform.OS !== 'web')
|
||||||
ScreenOrientation.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);
|
ScreenOrientation?.lockAsync(ScreenOrientation.OrientationLock.PORTRAIT_UP);
|
||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user