@@ -14,51 +14,57 @@ const VideoPlayer = ({
14
14
const [ open , setOpen ] = useState ( false )
15
15
16
16
useEffect ( ( ) => {
17
- const Plyr = require ( "plyr" ) ;
18
- const player = new Plyr ( "#player" , {
19
- i18n : {
20
- speed : dict ?. video . speed ,
21
- normal : dict ?. video . normal ,
22
- } ,
23
- controls : [
24
- "play-large" ,
25
- "restart" ,
26
- "rewind" ,
27
- "play" ,
28
- "fast-forward" ,
29
- "progress" ,
30
- "current-time" ,
31
- "duration" ,
32
- "mute" ,
33
- "volume" ,
34
- "captions" ,
35
- "settings" ,
36
- "pip" ,
37
- "airplay" ,
38
- // 'download',
39
- "fullscreen" ,
40
- ] ,
41
- } ) ;
42
- const show = ( ) => {
43
- player . toggleControls ( true ) ;
44
- } ;
45
- const hiden = ( ) => {
46
- player . toggleControls ( false ) ;
47
- } ;
48
- player . on ( "ready" , ( e : any ) => {
49
- player . toggleControls ( false ) ;
50
- const playerContainer = document . getElementById ( "player-container" ) ;
51
- if ( ! playerContainer ) return ;
52
- playerContainer . addEventListener ( "mouseenter" , show ) ;
53
- playerContainer . addEventListener ( "mouseleave" , hiden ) ;
54
- } ) ;
17
+ // 动态导入Plyr以避免SSR问题
18
+ const loadPlyr = async ( ) => {
19
+ const Plyr = ( await import ( "plyr" ) ) . default ;
20
+ const player = new Plyr ( "#player" , {
21
+ i18n : {
22
+ speed : dict ?. video . speed ,
23
+ normal : dict ?. video . normal ,
24
+ } ,
25
+ controls : [
26
+ "play-large" ,
27
+ "restart" ,
28
+ "rewind" ,
29
+ "play" ,
30
+ "fast-forward" ,
31
+ "progress" ,
32
+ "current-time" ,
33
+ "duration" ,
34
+ "mute" ,
35
+ "volume" ,
36
+ "captions" ,
37
+ "settings" ,
38
+ "pip" ,
39
+ "airplay" ,
40
+ "fullscreen" ,
41
+ ] ,
42
+ } ) ;
43
+
44
+ const show = ( ) => {
45
+ player . toggleControls ( true ) ;
46
+ } ;
47
+ const hiden = ( ) => {
48
+ player . toggleControls ( false ) ;
49
+ } ;
55
50
56
- return ( ) => {
57
- const playerContainer = document . getElementById ( "player-container" ) ;
58
- if ( ! playerContainer ) return ;
59
- playerContainer . removeEventListener ( "mouseenter" , show ) ;
60
- playerContainer . removeEventListener ( "mouseleave" , hiden ) ;
51
+ player . on ( "ready" , ( e : any ) => {
52
+ player . toggleControls ( false ) ;
53
+ const playerContainer = document . getElementById ( "player-container" ) ;
54
+ if ( ! playerContainer ) return ;
55
+ playerContainer . addEventListener ( "mouseenter" , show ) ;
56
+ playerContainer . addEventListener ( "mouseleave" , hiden ) ;
57
+ } ) ;
58
+
59
+ return ( ) => {
60
+ const playerContainer = document . getElementById ( "player-container" ) ;
61
+ if ( ! playerContainer ) return ;
62
+ playerContainer . removeEventListener ( "mouseenter" , show ) ;
63
+ playerContainer . removeEventListener ( "mouseleave" , hiden ) ;
64
+ } ;
61
65
} ;
66
+
67
+ loadPlyr ( ) ;
62
68
} , [ dict ] ) ;
63
69
64
70
return (
0 commit comments