node后台生成srt字幕文件

        var source=[{"sTime":20,"id":1,"eTime":30,"content":"李雷,你最近好吗"},{"sTime":45,"id":2,"eTime":59,"content":"很好,你呢"},{"sTime":86,"id":3,"eTime":102,"content":"我也很好,谢谢"},{"sTime":115,"id":4,"eTime":124,"content":"不谢"}]
        var data='';
        if(source.length>0){
            var add0=function(m){return m<10?'0'+m:m };
            var secondFormat=function(second) {
                var h = Math.floor(second/3600%24);
                var m = Math.floor(second/60%60);
                var s = Math.floor(second%60);
                return add0(h)+":"+add0(m)+":"+add0(s);
            }
            source.forEach(function(e,i){
                //生成字幕文件内容
                data+=(i+1)+'\n'+
                    secondFormat(e.sTime)+',000 -->'+secondFormat(e.eTime)+',000\n'+
                    e.content+'\n\n';
            })
            //设置http头部返回信息
            res.append('Content-Type', 'application/force-download;'); 
            res.append( 'Content-Disposition', 'attachment; filename='+encodeURIComponent(ret.title)+'.srt')
            //注意这里,node生成的data为utf格式,必须调用icnov-lite转换编码格式为unicode,否则srt文件加载出现乱码
            var iconv = require('iconv-lite');
            data=iconv.encode(data,'gb2312');
            res.send(data);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值