今天班里小组合作录了一个视频,我给它做了字幕的时间轴。为了让这个视频假装很高端的样子,我想再加上英文的字幕。中文的纯字幕文本先搞成一句一行,然后放到Google翻译上,复制英文保存在Eng.txt。

我用人人影视的字幕软件给中文先做好了时间轴,想要在加上英文的时候发现好像这个软件不那么容易实现。于是我就想自己写点代码自己实现这个需求。

代码其实是非常简单的,就是最简单的文件操作。做好时间轴的中文字幕保存在Chs.srt中,其格式为:

1
00:00:19,572 --> 00:00:21,069
很高兴能够在这里见到大家 2
00:00:21,645 --> 00:00:24,991
首先恭喜大家通过初试来到今天小组讨论的阶段 3
00:00:25,527 --> 00:00:28,532
能够厮杀到这个环节说明大家都是非常优秀的

每一句字幕是4行,我只要在第三行插入对应的那行英文就可以了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO; namespace BilingualSrt
{
class Program
{
static void Main(string[] args)
{
StreamReader chsStream = new StreamReader("Chs.srt");
StreamReader engText = new StreamReader("Eng.txt");
StreamWriter outer = new StreamWriter("chs_eng.srt");
string cline = "";
int counter = 0;//用来给行数计数
while(true){
cline=chsStream.ReadLine();
if (cline == null)
break;
Console.WriteLine(cline);
switch (counter)
{
//第三行是字幕文本
case 2:
outer.WriteLine(cline);
string engLine = engText.ReadLine();
outer.WriteLine(engLine);
break;
//第一、二行是序号和时间
//第四行是空行
default:
outer.WriteLine(cline);
break; }
counter++;
counter%= 4;
}
chsStream.Close();
engText.Close();
outer.Close();
}
}
}

最后完成的效果如下:

1
00:00:19,572 --> 00:00:21,069
很高兴能够在这里见到大家
Glad to be here to see you. 2
00:00:21,645 --> 00:00:24,991
首先恭喜大家通过初试来到今天小组讨论的阶段
Congratulations everyone came through the first test phase of the panel discussion today 3
00:00:25,527 --> 00:00:28,532
能够厮杀到这个环节说明大家都是非常优秀的
To be able to fight this link shows that we are very good

版权声明:本文为博主原创文章,未经博主允许不得转载。

[C#]中英文字幕合并的小程序的更多相关文章

  1. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  2. 如何把原生小程序项目合并的mpvue项目中

    当时的情景是这样的: 使用mpvue写微信小程序,写着写着项目写到一半了,突然间不想这样继续写了,想切换回原生小程序语法去写剩余部分. 如下图,红色框里的功能是已经用mpvue完成的功能,绿色框部分的 ...

  3. 如何为你的微信小程序体积瘦身?

    众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了. 在设计一个小程序之初,我们就需要重 ...

  4. 微信小程序常见问题集合(长期更新)

    最新更新: 新手跳坑系列:推荐阅读:<二十四>request:fail错误(含https解决方案)(真机预览问题 跳坑指南<七十>如何让微信小程序服务类目审核通过 跳坑六十九: ...

  5. 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...

  6. 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...

  7. 浅谈微信小程序对于创业者,意味着什么?

    尽管这个话题,有点儿烂大街,然而作为开发者兼创业人,兹以为很有必要为自己梳理一番. 多年前,当萌生创业的念头时,我是这样在脑海里绘制这幅蓝图的: 我需要一个域名,一个服务器,并且备了案. 我需要至少一 ...

  8. 用jquery实现抽奖小程序

    用jquery实现抽奖小程序 这些日子,到处都可以看到关于微信小程序的新闻或报到,在博客园中写关于微信小程序的也不少.但是今天我要说的不是微信小程序,而是用简单的jquery写的一个好玩的抽奖小程序. ...

  9. 【腾讯Bugly干货分享】聊一聊微信“小程序”

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ecdf5ef03abecd43216fd0 Dev Club 是一个交流移动 ...

随机推荐

  1. mvc 设置默认页技巧

    打开网址:http://xxxx.com自动跳转==>http://xxx.com/home/index 设置route入口: routes.MapRoute( name: "Main ...

  2. iOS进阶:Objective-C runtime(一)

    第一次看到runtime时,觉得太高大上,动态获取方法.属性等简直厉害的不要不要的.在经过查找资料+实践后,发现runtime并没有想象中那么复杂,接下来对runtime进行基本的介绍. 要使用运行时 ...

  3. java中的堆、栈、常量池

    java中的堆.栈.常量池 分类: java2010-01-15 03:03 4248人阅读 评论(5) 收藏 举报 javastring编译器jvm存储equals Java内存分配: 1. 寄存器 ...

  4. C语言,如何产生随机数

    1. 基本函数 在C语言中取随机数所需要的函数是: int rand(void);void srand (unsigned int n); rand()函数和srand()函数被声明在头文件stdli ...

  5. android:visibility

    RelativeLayout android:visibility="gone/visible/invisible" 此属性意思是此视图是否显示 例如RelativeLayout中 ...

  6. CircleImageView 圆形图片头像实现

    package com.view.drop; import android.content.Context; import android.content.res.TypedArray; import ...

  7. 'gbk' codec can't encode character

    做爬虫抓取网页,print(html)进行调试,遇到UnicodeEncodeError: 'gbk' codec can't encode character XX in position XX问题 ...

  8. hacker入门篇——相关书籍

    1.<黑客大曝光:网络安全机密与解决方案(第7版)> 简介:这是一本老外写的书,比较适合入门看,内容包括一些基本的攻防流程,基本工具软件,网络安全的一些基本概念等,对整个网络安全和黑客入侵 ...

  9. VI 配置文件(略全)

    配置 ~/.vimrc文件. root则放到/etc/vimrc 具体详见代码 "====================================================== ...

  10. Redis用户添加、分页、登录、注册、加关注案例

    连接redis代码redis.php <?php //实例化 $redis = new Redis(); //连接服务器 $redis->connect("localhost&q ...