js实字幕播放功能

感觉写的不好,全当提供一个思路了

实现方法是找到对象的第一个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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值