感觉写的不好,全当提供一个思路了
实现方法是找到对象的第一个b,然后和当前播放时间a对比,如果a > b,就把b对应的值替换掉当前字幕,然后删掉对象中的b
结构
<audio :src="require('../../assets/game/mp3/audio.mp3')" type="audio/mp3" ref="audio"/>
<div> {{subtitle}}</div>
数据格式
subtitle: "",
subtitleList: {
'0.0': "小勇士们,你们好,我是Alfred",
'4.0': "在古英语当中Alfred表示智慧",
'7.5': "我可是一只非常聪明的鹦鹉哦!",
'11.0': "偷偷告诉你们一个秘密!",
'13.0': "我会说4种不同国家的语言哦",
'16.0': "其实语言的学习是相通的",
'18.0': "只要找到规律就会非常简单",
'20.5': "接下来你们就要跟着我去这座岛屿探索英语的奥秘了!",
'27.0':'Are you ready ? ',
'28.5':'yes or no ?',
},
方法
setInterval(() => {
//拿到当前播放时间
let a=this.$refs.audio.currentTime.toFixed(3)
//拿到对象第一个key
let b=Object.keys(this.subtitleList)[0]
//对比大小
if(Number(a)>Number(b)){
//替换
this.subtitle = this.subtitleList[b];
//删除
delete this.subtitleList[b]
}
}, 100);