修复无法添加音频

This commit is contained in:
hansas
2025-09-12 15:30:06 +08:00
parent f332728cb8
commit 006e85c23d

View File

@@ -147,7 +147,7 @@ function save(option: 'save' | 'saveAndNext') {
let d = cloneDeep(editArticle)
if (!d.id) d.id = nanoid(6)
delete d.sections
copy(console.json(d, 2))
copy(JSON.stringify(d, null, 2))
const saveTemp = () => {
emit(option as any, editArticle)
return resolve(true)
@@ -160,9 +160,31 @@ function save(option: 'save' | 'saveAndNext') {
//不知道为什么直接用editArticle取到是空的默认值
defineExpose({save, getEditArticle: () => cloneDeep(editArticle)})
function handleChange(e: any) {
// 处理音频文件上传
function handleAudioChange(e: any) {
// 获取上传的文件
let uploadFile = e.target?.files?.[0]
if (!uploadFile) return
// 创建一个临时的URL以访问文件
const audioURL = URL.createObjectURL(uploadFile)
// 设置音频源
editArticle.audioSrc = audioURL
// 重置input确保即使选择同一个文件也能触发change事件
e.target.value = ''
Toast.success('音频添加成功')
}
// 处理LRC文件上传
function handleChange(e: any) {
// 获取上传的文件
let uploadFile = e.target?.files?.[0]
if (!uploadFile) return
// 读取文件内容
let reader = new FileReader();
reader.readAsText(uploadFile, 'UTF-8');
reader.onload = function (e) {
@@ -189,9 +211,14 @@ function handleChange(e: any) {
return w.audioPosition ?? []
})
}).flat()
Toast.success('LRC文件解析成功')
}
}
}
// 重置input确保即使选择同一个文件也能触发change事件
e.target.value = ''
}
let currentSentence = $ref<Sentence>({} as any)
@@ -385,10 +412,17 @@ function setStartTime(val: Sentence, i: number, j: number) {
<div class="title">结果</div>
<div class="center">正文译文与结果均可编辑编辑后点击应用按钮会自动同步</div>
<div class="flex gap-2">
<BaseButton>添加音频</BaseButton>
<div class="upload relative">
<BaseButton>添加音频</BaseButton>
<input type="file"
accept="audio/*"
@change="handleAudioChange"
class="w-full h-full absolute left-0 top-0 opacity-0"/>
</div>
<div class="upload relative">
<BaseButton>添加音频LRC文件</BaseButton>
<input type="file"
accept=".lrc"
@change="handleChange"
class="w-full h-full absolute left-0 top-0 opacity-0"/>
</div>