说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用VB6的双通道技术获得影碟片断

HTML文档下载 WORD文档下载 PDF文档下载
用VB6的双通道技术获得影碟片断


   现在计算机多媒体技术的发展,使影碟无需借助解压卡就可以在电脑中播放,而且由于vcd2.0标准的普及,影碟已经完成了向数字文件化的过渡,完全可以轻松的将任何vcd拷贝到自己的硬盘上欣赏,而无须辛苦娇嫩的光驱.这也为我们截取任何影碟的片断提供了可能.但是目前普遍采用的压缩成AVI文件的办法不仅体积庞大、画面停滞而且速度非常慢。笔者在总结编写文件分割软件的经验基础上,辟出了一条蹊径,即采用双通道技术直接截取影碟文件片断,从根本上克服了上述弊端。
  (一)编程原理;
  一般来说VCD的实际影音文件放在光盘根目录下“MPEGAV”子目录下,文件名为music001.dat或者依次排序,通过对该文件的截取操作,使用户可以保存任何精彩的影碟片断,据作者测算,每十兆字节大约可以播放一分钟,这样,用户可以使用该软件截取任意时间段内的vcd,不过要使用“超级解霸”5.02以上版本播放。
  由于影音文件体积非常大,普通vcd2.0格式60分钟的影音文件长度在600兆以上,因此采用单通道定义二进制数组的办法不仅可靠性差,而且截取较长片断时势必难以实现.笔者采用了双通道技术,即通过定义较小的固定二进制数组,一个通道用来读取,另一个通道用来写入的方法来实现.这其中涉及了复杂的二进制定位技术。
  (二)编程实例;
  (第一步)启动vb6中文版建立一个标准exe工程,将窗体命名为“form1",单击“工程"菜单项目,选择“部件",在部件对话框的“控件"栏目中选择“MICROSOFT WINDOWS COMMON CONTROLS 6.0",确认在它前面的复选框中有一个黑色的对号,单击“确认",添加对该控件的引用.添加6个标签框,4个文本框(由上直下依次排列),3个按钮,一个进度条命名为ba1,一个公用对话框控件命名为cog1,拖动控件到适当位置,界面设计完成后大致如图1所示。其中, “影音文件名称:"标签对应text1,“影音文件长度:"标签对应text2,“截取起始位置:”标签对应text3,“截取长度:”标签对应text4,“截取后文件保存路径:”标签对应text5.设置Label6的BorderStyle = 1,“浏览(*.dat)”按钮对应Command1 ,“保存为(*.dat)"按钮对应Command2 ,“开始截取"按钮对应Command3 。
  双击窗体添加以下代码:
  Private Sub Command1_Click() 注释:浏览选择文件
  Cog1.FileName = “" 注释:清空过期文件名称
  Cog1.Filter =“vcd影碟文件(*.dat)|*.dat" 注释:只保留影碟文件
  Cog1.ShowOpen 注释:执行打开操作
  If Cog1.FileName <> "" Then 注释:如果放弃就忽略操作
  Text1.Text = Cog1.FileName 注释:得到被截取文件名
  Label6.Caption = CInt(FileLen(Text1.Text) / 2 ^ 20) 注释:将文件长度转化为兆字节
  End If
  End Sub
  Private Sub Command2_Click() 注释:保存为
  If Text1.Text = “" Then 注释:如果未选定影音文件就拒绝操作,显示提示信息
  MsgBox “请首先选择一个被截取的文件!", vbOKOnly + vbExclamation
  Exit Sub 注释:中断操作
  End If
  Cog1.FileName = “"
  Cog1.ShowSave
  If Cog1.FileName <> “" Then
  Text4.Text = Cog1.FileName 注释:保存路径名称
  End If
  End Sub
  Private Sub Command3_Click() 注释:开始截取操作
  Dim err_descr As String
  If Text1.Text = “" Or Text2.Text = “" Or Text3.Text = “" Or Text4.Text = “" Then 注释:再次验证参数正确性
  MsgBox “请依次输入正确的信息,不要有所遗漏!", vbOKOnly + vbExclamation
  Exit Sub 注释:如果参数不完整忽略操作
  End If
  If Not jieQU(Text1.Text, Text2.Text, Text3.Text, Text4.Text) Then 注释:执行截取失败
  MsgBox “红箭提示信息:" & err_descr, vbOKOnly + vbExclamation 注释:返回错误信息
  Else 注释:执行截取成功
  MsgBox“红箭提示信息:文件截取操作已经圆满完成!", vbOKOnly + vbExclamation
  End If
  End Sub
  Private Sub Form_Load()
  Me.Caption = App.Title
  Me.Left = (Screen.Width - Me.Width) / 2
  Me.Top = (Screen.Height - Me.Height) / 2 注释:窗体居中
  End Sub
  Private Sub Form_Unload(Cancel As Integer)
  End 注释:结束工程
  End Sub
  (第二步)添加一个模块,输入以下代码:
  Option Explicit 注释:变量检查
  Type FileSection
  Bytes() As Byte 注释:定义关键数组
  End Type
  Type SectionedFile
  Files() As FileSection 注释:定义辅助数组
  End Type
  Public Function jieQU(Yname As String, Kshi As Long, CHang As Long, Bname As String) As Boolean 注释:定义截取操作函数
  Form1.MousePointer = 11 注释:设置鼠标指针为漏斗型
  jieQU = True 注释:函数成功标志
  Dim mlp As Integer, i As Integer, zhi As Long, fnum As Integer, fnum1 As Integer
  Dim shuZU As Long, myfile As SectionedFile
  shuZU = 2000000 注释:定义内存固定数组,长度为2兆
  Kshi = Kshi * 2 ^ 20
  注释:转换文件指针单位为字节
  CHang = CHang * 2 ^ 20
   注释:转换文件长度单位为字节
  If CHang < shuZU Then
  注释:如果截取长度太小
  MsgBox “截取的文件长度不能小于2兆字节!", vbOKOnly + vbExclamation
  jieQU = False
  注释:返回操作失败标志,退出操作
  Exit Function
  End If
  If CInt(CHang / shuZU) >= CHang / shuZU Then
  mlp = CInt(CHang / shuZU)
  Else
  mlp = CInt(CHang / shuZU) + 1
  End If
  注释:计算需要进行操作的次数
  fnum1 = FreeFile注释:返回第一个空闲文件通道
  Open Bname For Binary As #fnum1 注释:以二进制方式打开影音文件
  ReDim myfile.Files(1) 注释:重新分配内存辅助数组
  With Form1.Ba1
  .Visible = True
  .Value = 0
  .Max = mlp
  .Min = 0 注释:展示进度条,提示操作进度
  For i = 1 To mlp 注释:读取和写入数据
  zhi = Kshi + (-1 + i) * shuZU 注释:计算第一个二进制通道指针
  If i < mlp Then 注释:如果不是最后一次操作
  ReDim myfile.Files(1).Bytes(1 To shuZU) 注释:定义主要内存数组2兆字节
  fnum = FreeFile 注释:打开第二个空闲文件通道
  Open Yname For Binary As #fnum 注释:以二进制方式打开被截取的影音文件
  Seek #fnum, zhi 注释:指针定位
  Get #fnum, , myfile.Files(1).Bytes 注释:获取数据
  Close #fnum
  Else 注释:如果是最后一次操作
  ReDim myfile.Files(1).Bytes(1 To (CHang - (mlp - 1) * shuZU)) 注释:分配主要内存数组大小为最后遗留数据大小
  fnum = FreeFile
  Open Yname For Binary As #fnum
  Seek #fnum, zhi 注释:定位指针
  Get #fnum, , myfile.Files(1).Bytes
  Close #fnum
  End If
  Put #fnum1, , myfile.Files(1).Bytes 注释:以二进制方式写入保存文件
  .Value = i 注释:进度条开始运行
  Next 注释:循环直到操作次数全部执行
  Close #fnum1 注释:关闭文件通道
  .Visible = False 注释:隐藏进度条
   End With
   Form1.MousePointer = 0 注释:还原鼠标指针指针
  End Function
  (第三步)运行调试工程,如图2。
  (第四步)编译。
  怎么样,现在一个精致的非常实用的先进的(不是夸口)vcd截取软件已经制作成功了(如图3),你现在可将那些什么avi压缩工具放进回收站了。心动不如行动,此程序在vb6.0中文企业版/windows98中调试通过,如果你用的是vb5.0那么也不用担心,你只用将第一步中对部件的引用改为“MICROSOFT WINDOWS COMMON CONTROLS 5.0"即可。(河南 新天)
雅虎发布今年第二季度财报 总营收为11.35亿美元 既然无法避免被GAE锁定,何不考虑其中的机遇并自力更生 19亿美金背后的分析:91为什么要卖?百度为什么要买? 直接拿来用!最火的iOS开源项目(三) 让代码飞一会儿,超级有用的CSS编码工具集 创业者如何在Demo演讲上打动投资人? 微软小打小闹的移动版Outlook Web App,会不会被用户抛弃? 哪门编程语言影响力最大? 微软启动“Companion Web”计划 可互连多屏幕设备 让你望而却步的密码管理服务已获得100万美元的种子基金 SDCC 2013开始公开征集讲师和演讲主题 不用图片和JS,照样创建绚丽的动态CSS3菜单 是福还是祸?开发者饱经风雨的内心独白 设计师/开发者看过来,七月35款新工具速递! Hadoop进军机器学习:Cloudera收购Myrrix共创“Big Learning” 张民杰:三人团队的OpenStack机会 White Elephant:开发者必备的Hadoop利器 不及分析师预期:微软第四季财报揭晓 净利49.7亿美元 Facebook收购英国手机代码验证公司Monoidics Apache基金会废弃其C++标准库 鲍尔默宣称微软有一百万台服务器,这个数字真的靠谱吗? 全球6000开发者:iOS、Android、WP最痴情谁? 提升网站知名度的十大方法 IBM移动平台首席架构师Greg Truty:MobileFirst从底层架构开始 Hallo.js:一款所见即所得的Web编辑器 数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径 移动周报:百度收购91,19亿美金背后的博弈 植物大战僵尸2:“免费+内付费”模式引发争论 [CTO俱乐部第103期] 高德和四维图新技术高管谈地图导航的发展与挑战 Java 7爆最新漏洞,10年前的攻击手法仍有效 Twitter联合创始人Biz Stone谈Facebook用户体验 提倡零广告 ActiveState.Visual.XSLT.for.VS.2003.v1.7.9.2475.WinNT2K无法安装。 如何合并两个dataset win98系统下ISAM问题 如何减小生成的EXE文件大小等? asp.net有没有模板 帮帮忙,呵呵!!!一个小问题!!!!! 用VB的兄弟姐妹们,来整个MSN如何? 关于dllhost占用系统资源的问题! 谁是雍亲王,出来说话!!! 在WSAD5.0里怎么添加类型为MYSQL的数据源 高手们,帮帮我噢(解决立刻给分) 全中国程序员联和起来。 如何在web的FORM1模式下画一条线段 界面贴图问题 为什么我用Server.MapPath(""),返回不了任何东东? 上手指路,高分相送 asp怎样连到SQL Server 2000?给100分,在线等 ASP.NET和SQL 哪位兄弟有用asp.net做的OA完整的例子...大家快来.. 关于dllhost占用系统资源的问题! Kylix是否和Delphi一样有RTF控件可以处理丰富文本? 小弟想考程序员!各位大哥指点一下嘛!有要考的交流一下嘛! 查询条件的问题?? 从事共享软件开发的进来谈谈做共享的辛酸好吗? TListView中某一SubItem怎末实时更新?在线等。。 http://www.000163.com/的空间能不能信得过? 请帮忙哟,在线急等 asp.net下如何用c#编写程序实现调用数据库中的多个表显示在datagrid 如何调用存储过程来删除表中的列名???? 给一个变量赋空值的问题 如何在DirectDraw显示Edit,输入文字?? 贴子回复次数大于跟给分次数是什么意思啊?让不让结啊?? 结交delphi爱好者! 请各位高手给我指点一下方向? 如何在Sybase数据库中获得刚插入的那条记录的主键? 怎样获得菜单项(menuitem)名? 简单问题 请问如果有一个dll文件,我想知道里面有什么函数,但我又没有说明书,有什么工具么? 报表设计器怎末没有在外接程序菜单中显示出来呀?? 如何知道选哪个? 急,如何将图标保存在一个数组中,并将它显示出来? struts配制数据源中如何指定url编码? 在csdn设立开放源代码的项目 妈的!等咱有了钱... zt 请问那位大哥有在linux用mysql管理前端啊 client script动态改变表单的问题 我从网上下载了一个例程,可是太大了,不知道从哪里开始读 如何能在程序的线程被kill的时候将定义的变量写入文件保存 有做过图书馆管理系统的请进(VB+SQL Server)C/S结构 请问这样一行代码是什么意思? 简单问题给100分 如果有人在家里去世了 然后该怎么办?包括打120时该怎么说 形容产生了恭敬和敬重的成语 有什么牌子的天文望远镜是可以直接接到单反相机的?想拍月球的环形山 girl.you think you'er cooler than me 是什么意思? 请问谁知道哪个成语可以用来形容人当面就恭恭敬敬,背后就说人坏话? 蒙鸠为巢的翻译谁有? 质壁分离实验 染的细胞是什么 为《和田的维吾尔》中的“库乃其”写宣传语 his theory is very difficult ,but -------people understand it.a few few a little little我觉得,but表示转折 应该是有几个人能够理解它 我选的a few 可是答案是few 齐景公问政于孔子,孔子的回答体现了孔子的什么主张 一个人文化或素质好是什么意思? 不在同一直线上合力的大小和方向怎么求 怎样正确使用安全带 一个人文化或素质高是什么意思 合力于分力的关系 不在同一直线上的合力一定时与分离的关系 分力一定的时与合理的关系 英语“作词/作曲/演唱”分别怎么写?作词:作曲:演唱:这三个用英语怎么写? 在经济学里APL是什么意思 pairing button是什么意思 请问大家作曲(者)和作词(者)还有专辑,这三个用英语怎么说? 我想问下经济上lac是什么意思? 物理作用在同一直线上的合力一辆小推车一开始以10牛的力推做匀速直线运动,前面有一障碍物改用20牛的力往回拉,在往回拉的过程中做的合力是多少? 作词、作曲、演唱者用英文怎么说? 有两个大小相等的共点力F1和F2,当它们的夹角为90°时,合力为F,则当它们间的夹角为60°时,合力的大小为:( ) pairing partner是什么意思 英语翻译歌曲中作词者、作曲者翻译成英文该怎么说?老板让我马上交差,如有知道的麻烦尽快回复, 微观经济学中TVC曲线与MC曲线有什么关系? 挖孔桩和钻空桩有什么区别 作词,作曲,演唱英文是什么? 已知合力(大小、方向)和一个分力的方向 为什么说FsinΘ<F2<F时,有两组高中物理 已知合力(大小、方向)和一个分力的方向 为什么说FsinΘ<F2<F时, 能给我用红线标一下 是哪两组 虫洞 和 虫孔有什么区别?是关于黑洞的~搞不清啊.黑洞和虫洞是有关的,根据爱因斯坦的广义相对论来说,虫洞是连接黑洞和白洞的,下面的又怎么能说两者无关呢?请注意看时间简史`~ 六棱柱是由几个面围成的 有两个大小相等的共点力F1和F2,当它们的夹角为90°时,合力为F,则当它们间夹角为60°时,合力多大?(说明过程, English teacher的缩写是什么? 想问一下有关银行方面的英语,因为要给国外汇款,那些英文缩写不太懂,如题account ref.bank ref.bic ref.iban ref.不懂的别来 《钢铁是怎样炼成的》句子赏析(赏析:修辞手法、写作特点、人物形象等).快、快、快! 忄与 这个字念什么?忄与 这个字念什么? 忄去读什么音 从写作手法和修辞手法角度赏析句子,快每一个声音——鸟雀的动弹声,簌簌的落叶声——听来都是巨响,使人不禁要打冷战,但冷战过去后,你又在寂静中凝神不动了,——寂静拥抱着整个大地,充 齿轮传动和带传动有什么区别? 西方经济微观 为什么MC=W/MPL 《钢铁是怎样炼成的》句子赏析(赏析:修辞手法、写作特点、人物形象等)(十句左右) 传导带和导带有什么区别? 谁能帮我打这个字“忄音”, 日本和澳大利亚的关系怎么样 V带传动与平带传动相比较,其主要优点是什么? 这三种电容依次是什么电容? 请帮忙整理一下地理的几个国家,日本,俄罗斯,印度,澳大利亚,巴西格式1是否被特殊线穿过【南北极圈,南北回归线,赤道】:2人种3通用语言4世界之最【关于河流,地形等最大,最高,或最广】5主 my grandpa's hobby is growing vegetables 划线提问 恭敬谨懂,尽心竭力工作到死为止是哪个成语心里完全愿意,没有一点勉强.是哪个啊 急求MC与AVC的关系 每天想你已经成了我的习惯用英语怎么说 30棱柱有( )条棱,99棱柱是由()个面围成的? 如何构建初中语文高效课堂 1.这是我的习惯 英语.2.I've got used to it.这句应该是现在完成,used这里是不是,形容词,我记得 be used to it / get used to it 是形容词好像3.I am used to it.介词to后面也可以跟 代词词 it 橡皮的英文 艾得来斯 都帕 巴郎子 库乃其各个的意思 perspective candidates 橡皮用英语怎么写? 维吾尔语的意思qak qak kelwatamsa是什么意思 pipeline candidates 是什么意思?以下是这个词组出现的地方1.Emerging pipeline candidates2.Almost all of those pipeline candidates are oral direct-acting antivirals.3.Amylin Outlines Corporate Strategy to Maximize Global Value of Diabete 金正恩参谒牺牲烈士墓地 称心疼得睡不英媒:2007年联合国气候大会美澳曾激情与危险同在:美媒盘点五例“离奇”阿富汗警察被指罪行累累 军官爆料引枪歌迷掷物损坏麦克风 比伯演唱会提早结民警执法被撞智力严重弱化 不认识儿子杨幂古天乐木村拓哉 那些年一起追过的朝鲜一军舰执行任务时沉没 指挥官和士广州高端相亲会测谎仪上阵 只看女方外六方会谈韩方团长访美 商讨重启朝核对美国洛杉矶机场枪击案嫌犯面临终身监禁河北遭遇持续大雾笼罩 大面积高速关闭外交人员故事三则:阅尽人生博弈 领教外交官的家庭生活:丈夫常年在外 都是中国发展 世界受益——专访法国参议院地沟油\"变废为宝\"曲折路:海南生专访:中国与葡语国家经贸关系将再上新揭秘中国外交官是怎样炼成的:缺乏写作洛杉矶国际机场枪击案嫌疑人面临谋杀控浙江商品房销售面积和销售额增幅“双降境外媒体:中俄痛批美沉迷“偷窥世界”平安银行长沙分行开业现代舞《天堂之日》探索孤独情侣网吧佯装上网 顺手牵羊偷手机珠江口发现漂流救生筏 救起才发现是群大乐透奖池突破27亿人人都该学一点法律南沙邮轮日本新航线昨启航《整理情绪的力量》为孩子办“延缓入学”真的好难!被指要为“9·11”负责 沙特慌了在污染区建学校源于管理者装睡出征海报:前景黯淡靠信仰前行店家占道经营 城管队员动手2016广东网络作家高级研习班广州开人行广州分行发布5项自贸区跨境人民币超五成市民最看重快递速度融资客积极做多热刺看胜客场防平广州中学生辩论“该读多书还是读好书”潮州福彩落实捐款 帮助重病患者治病宋仲基将“说出他的故事”
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘