From 4a38f4daf834c568b0990efab4a5c9db2bdc2eff Mon Sep 17 00:00:00 2001 From: root Date: Fri, 11 Jul 2025 17:12:46 +0800 Subject: [PATCH] fix --- src/components/VideoPlayer.tsx | 67 +++------------------------------- 1 file changed, 5 insertions(+), 62 deletions(-) diff --git a/src/components/VideoPlayer.tsx b/src/components/VideoPlayer.tsx index 9502eab..5981df5 100644 --- a/src/components/VideoPlayer.tsx +++ b/src/components/VideoPlayer.tsx @@ -57,73 +57,16 @@ const VideoPlayer: React.FC = ({ checkFileAndSetSrc() }, [isOpen, videoPath]) - // 检测是否为Windows绝对路径 - const isWindowsAbsolutePath = (path: string): boolean => { - return /^[A-Z]:\\/i.test(path) || path.includes('\\') - } - // 尝试多种方法加载视频 const tryLoadVideo = async (path: string) => { // 根据路径类型选择不同的加载策略 const videoPath = path.split('\\').filter(it => it.length > 0).join('/') - console.log(`try load video`, videoPath) + console.log(`try load video videoPath`, videoPath) const src = convertFileSrc(videoPath) - const testResult = await testVideoSource(src, `convertFileSrc`) - if (testResult) { - setVideoSrc(src) - setLoadingMethod('convertFileSrc') - return - } - setErrorMessage('无法加载视频:所有加载方法都失败了') - } - - // 测试视频源是否可用 - const testVideoSource = (src: string, methodName: string): Promise => { - return new Promise((resolve) => { - const testVideo = document.createElement('video') - - const cleanup = () => { - testVideo.removeEventListener('canplay', onCanPlay) - testVideo.removeEventListener('error', onError) - testVideo.removeEventListener('loadstart', onLoadStart) - } - - const onCanPlay = () => { - console.log(`${methodName} method successful - video can play`) - cleanup() - resolve(true) - } - - const onError = (e: any) => { - console.log(`${methodName} method failed - video error:`, { - error: e, - networkState: testVideo.networkState, - readyState: testVideo.readyState - }) - cleanup() - resolve(false) - } - - const onLoadStart = () => { - console.log(`${methodName} method - load started`) - } - - testVideo.addEventListener('canplay', onCanPlay) - testVideo.addEventListener('error', onError) - testVideo.addEventListener('loadstart', onLoadStart) - - // 设置超时 - setTimeout(() => { - if (testVideo.readyState < 2) { // HAVE_CURRENT_DATA - console.log(`${methodName} method timeout`) - cleanup() - resolve(false) - } - }, 5000) - - testVideo.src = src - testVideo.load() - }) + console.log(`try load video src`, src) + setVideoSrc(src) + setLoadingMethod('convertFileSrc') + return } useEffect(() => {