# Zimu2 **Repository Path**: Enious/Zimu2 ## Basic Information - **Project Name**: Zimu2 - **Description**: 微软虚拟学院视频字幕转换 XML字幕转SRT - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 2 - **Created**: 2016-07-27 - **Last Updated**: 2023-11-03 ## Categories & Tags **Categories**: multimedia **Tags**: None ## README **一个简单小工具。转换微软虚拟学院(MVA)XML字幕为SRT字幕** # 基本功能: 1. 支持拖拽TXT或者XML文件到APP中。 1. 最终把添加的文件转换为SRT格式字幕。 1. 批量转换等。 # 项目状态:停止 # APP下载:请到附件中下载(下面有链接) 1. 安装[安全证书](https://gitee.com/xiongjiahui/MVASCS/attach_files/download?i=97722&u=http%3A%2F%2Ffiles.git.oschina.net%2Fgroup1%2FM00%2F02%2F03%2FPaAvDFnU9vuAEIp1AAAC2EILOtU176.cer%3Ftoken%3D07d7dccda63aa75abdbf94137bdf0eb4%26ts%3D1507129170%26attname%3D%25E5%25BE%25AE%25E8%25BD%25AF%25E8%2599%259A%25E6%258B%259F%25E5%25AD%25A6%25E9%2599%25A2%25E5%25AD%2597%25E5%25B9%2595%25E8%25BD%25AC%25E6%258D%25A2%25E7%25B3%25BB%25E7%25BB%259F_1.0.0.0_x86_x64_arm.cer) 。 2. 安装[应用程序](https://gitee.com/xiongjiahui/MVASCS/attach_files/download?i=97723&u=http%3A%2F%2Ffiles.git.oschina.net%2Fgroup1%2FM00%2F02%2F03%2FPaAvDFnU91KALjKdADJjZOG66-Q.appxbu%3Ftoken%3D785a50806540cf7dfe9effd45f157a1b%26ts%3D1507129170%26attname%3D%25E5%25BE%25AE%25E8%25BD%25AF%25E8%2599%259A%25E6%258B%259F%25E5%25AD%25A6%25E9%2599%25A2%25E5%25AD%2597%25E5%25B9%2595%25E8%25BD%25AC%25E6%258D%25A2%25E7%25B3%25BB%25E7%25BB%259F_1.0.0.0_x86_x64_arm.appxbundle)。 # 更新(2016年8月12日22:05:01) 支持到一周年更新版系统(14393)和.NET Native 解决了字幕中出现负数时间轴而导致的字幕问题。 已知BUG:2次拖入了同名文件导致BUG问题,下个版本添加判断。 ~~如果出现00:00:21.626格式的字幕时间轴会无法获取到值,需要更改判断条件。~~ # 更新(2016年8月9日18:29:08) 解决拖入UTF8编码的XML文件闪退问题 # 更新(2016年7月30日18:03:17) ### 已知BUG状态栏无法正常显示。 ### 利用XmlDocument类读取XML字幕文件 1.创建一个model有:开始、结束时间和字幕文本3个属性 ``` private class SumString { public string begin { get; set; } public string end { get; set; } public string text { get; set; } } ``` 2.创建3个List来保存:开始、结束和字幕文本。 ``` List beginAttribute = new List();//开始时间 List endAttribute = new List();//结束时间 List text = new List();//节点文本类容 ``` 3.读取XML:保存到beginAttribute、endAttribute和text。 由于UWPEncoding.GetEncoding()没有GB2312所以必须自己手动注册 ``` #region 注册GB2312 EncodingProvider provider = CodePagesEncodingProvider.Instance; Encoding.RegisterProvider(provider); Encoding gb2312 = Encoding.GetEncoding("gb2312"); #endregion #region 注册GB2312 EncodingProvider provider = CodePagesEncodingProvider.Instance; Encoding.RegisterProvider( provider ); Encoding gb2312 = Encoding.GetEncoding( "gb2312" ); #endregion var content = File.ReadAllText( path, gb2312 ); byte[] tempG = gb2312.GetBytes( content ); byte[] utf8 = Encoding.Convert( gb2312, Encoding.UTF8, tempG ); string utf8str = Encoding.UTF8.GetString( utf8 ); XmlDocument document = new XmlDocument(); document.LoadXml( utf8str ); var templist = document.GetElementsByTagName( "p" ); foreach ( XmlNode p in templist ) { beginAttribute.Add( p.Attributes["begin"].Value ); endAttribute.Add( p.Attributes["end"].Value ); text.Add( p.InnerText.Trim() ); } ``` # 更新(2016年7月28日00:42:38) **1.基本布局和一些动画的练习。** ![输入图片说明](http://git.oschina.net/uploads/images/2016/0728/004824_439db6fd_812498.gif "在这里输入图片标题") =======