解析caption srt的文件的方法

private List<Caption> parseCaptionFile(String videoId, MultipartFile file) {
		List<Caption> captionList = new ArrayList<Caption>();
		String language = getLanguage(file);
		try (Reader inputStreamReader = new InputStreamReader(file.getInputStream(), "UTF-8");
				BufferedReader reader = new BufferedReader(inputStreamReader);) {
			String line;
			Integer pos = 0;
			Caption caption = null;
			while ((line = reader.readLine()) != null) {
				if (pos == 0) {
					caption = new Caption(videoId, language);
				}
				pos++;
				String lineContent = line.toString().trim();
				if (StringUtils.isEmpty(lineContent)) {
					pos = 0;
					if (!Objects.isNull(caption)) {
						captionList.add(caption);
					}
					continue;
				}
				if (pos == 1) {
					log.info("line content is {}", lineContent);
					caption.setIndex(lineContent);
					continue;
				}
				if (pos == 2) {
					log.info("line content is {}", lineContent);
					convertTime(lineContent, caption);
					continue;
				}
				if (pos >= 3) {
					log.info("line content is {}", lineContent);
					if (pos == 3) {
						caption.setText(lineContent);
					} else {
						caption.setText(caption.getText() + "\n" + lineContent);
					}
				}
			}
		} catch (UnsupportedEncodingException e) {
			log.error("caption info insert fail {}", e.getMessage());
		} catch (IOException e) {
			log.error("caption info insert fail {}", e.getMessage());
		}
		return captionList;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值