fix: window path
This commit is contained in:
parent
dae4a24dbc
commit
d0c1696f93
|
|
@ -64,11 +64,56 @@ const VideoPlayer: React.FC<VideoPlayerProps> = ({
|
||||||
name: 'convertFileSrc',
|
name: 'convertFileSrc',
|
||||||
load: () => {
|
load: () => {
|
||||||
console.log(`convertFileSrc ${path}`)
|
console.log(`convertFileSrc ${path}`)
|
||||||
const src = convertFileSrc(path)
|
|
||||||
console.log('Trying convertFileSrc:', { originalPath: path, convertedSrc: src })
|
// 处理Windows路径
|
||||||
|
let processedPath = path
|
||||||
|
if (path.includes('\\') && path.includes(':')) {
|
||||||
|
// Windows绝对路径,转换为相对路径或使用不同的处理方式
|
||||||
|
console.log('Detected Windows absolute path, processing...')
|
||||||
|
|
||||||
|
// 尝试移除盘符,使用相对路径
|
||||||
|
if (path.match(/^[A-Z]:\\/)) {
|
||||||
|
// 如果是绝对路径,尝试只使用文件名部分或相对路径
|
||||||
|
const pathParts = path.split('\\')
|
||||||
|
const fileName = pathParts[pathParts.length - 1]
|
||||||
|
console.log('Extracted filename:', fileName)
|
||||||
|
|
||||||
|
// 先尝试原始路径,如果失败再尝试其他方法
|
||||||
|
processedPath = path
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const src = convertFileSrc(processedPath)
|
||||||
|
console.log('Trying convertFileSrc:', {
|
||||||
|
originalPath: path,
|
||||||
|
processedPath: processedPath,
|
||||||
|
convertedSrc: src
|
||||||
|
})
|
||||||
return src
|
return src
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'windowsPath',
|
||||||
|
load: async () => {
|
||||||
|
console.log('Trying Windows path method for:', path)
|
||||||
|
|
||||||
|
// 对于Windows路径,尝试通过后端API获取文件内容
|
||||||
|
try {
|
||||||
|
const fileContent = await invoke<string>('read_file_as_base64', { filePath: path })
|
||||||
|
const dataUrl = `data:video/mp4;base64,${fileContent}`
|
||||||
|
console.log('Windows path method successful, data URL length:', dataUrl.length)
|
||||||
|
return dataUrl
|
||||||
|
} catch (error) {
|
||||||
|
console.log('Windows path method failed, trying alternative...')
|
||||||
|
|
||||||
|
// 尝试标准化路径
|
||||||
|
const normalizedPath = path.replace(/\\/g, '/')
|
||||||
|
const src = convertFileSrc(normalizedPath)
|
||||||
|
console.log('Trying normalized path:', { normalizedPath, src })
|
||||||
|
return src
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'dataUrl',
|
name: 'dataUrl',
|
||||||
load: async () => {
|
load: async () => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue