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

用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"即可。(河南 新天)
C#编程自动安装Windows服务 C#安装/删除 .NET Windows服务 C#启动、停止、重启Windows服务 jQuery实现Ajax提交form表单的简单方法 字符串String与枚举Enum之间的转换[C#] Javascript统计DOM元素里文字的行数 C#从Web网站下载文件 C#得到区域名称列表 C#合并多个PrintDocument WpWidgetLibrary - Windows Phone的HTML部件库(Widgets) 让你不再害怕C语言指针 C语言概述-C语言教程 Turbo C 2.0集成开发环境的使用(上)-C语言教程 Turbo C 2.0集成开发环境的使用(下)-C语言教程 程序的灵魂—算法-C语言教程 数据类型、运算符与表达式(上)-C语言教程 数据类型、运算符与表达式(下)-C语言教程 最简单的C语言顺序程序设计-C语言教程 分支结构程序-C语言教程 循环控制-C语言教程 数值数组-C语言教程 字符数组-C语言教程 函数(上)-C语言教程 函数(下)-C语言教程 预处理命令-C语言教程 C语言指针(上)-C语言教程 C语言指针(下)-C语言教程 结构体与共用体-C语言教程 位运算-C语言教程 文件处理-C语言教程 谭浩强C语言教程 有什么好的方法,将excel和dbf文件转换成ACCESS和--在线等待 一个SQL Server的小问题 问题解决? 如何为TreeView添加事件? 执行delete后,为什么没有释放内存空间 我又一次糊涂了 关于工具条中加控件,并设定控件大小的问题(100)! 老问题,刷新时的重复添加,有好的解决方法了吗? what????this is redhat6.0 如何看分析解释语句,,谢谢,,100分。 搜索的问题 vb中文件保存的原代码是怎样的? 请教各位高手以及愿意帮助我的各位前辈们! 请问报表设计器是怎么用的? 请教!delphi4 是否可在windows xp 环境下安装? 创建EJB Test Client 的问题》???怪啊 用CSS可以改变table中的字体颜色吗? 在delphi中怎样注册一个ocx控件,用代码如何实现!!! 如何找到文件? 請問怎樣知道SQLServer里IMAGE字段是否為空 救命啊!开发gis系统需不需要后台数据库 散装赛扬III配的原装Intel风扇的问题 急!!!百分求解window api中CHOOSEFONT与LOGFONT关系。 问一个vc中CRecordset定义问题 怎么通过程序改变REMOTEDATACTL的属性? 请问如何在JSP中实现邮件的收发?(涉及到密码验证的问题)我已经郁闷很久了! 如何得到另一个进程中的线程正在使用的tcp/ip端口? **好像有一个网址可以自由上传30M以下的软件,请问有谁知道这个网址?????** Unicode的问题???? db 库文件被破坏,请教高手? 本人刚接触vc,紧急求助! 请问,如何将简体字的网页,转换为繁体字的网页? 请教vb3秒精确定时问题? 哪位大侠能在今天内急救!!关于asp.net的数据验证和数组传送问题 lihonggen0(李洪根,用VB,标准答案来了) 密码被人盗用 在Delphi中用ADO怎样连接Excel表 x++等的问题。 当一个数据库数据更新后如何通知所有连接到此数据库的用户来更新自己? 一个有趣的问题 奉献100, 现在手头有个程序,关于附件上传! 如何判断A字符串中是否包含B字串? 做个类似的邮件发送程序 快快就我 怎样同时新增主从两张表的数据? vb.Net中的几种类型集合中,那种适合于用Index和Key来索引?我怎么觉得.Net的CollectionBase还没有vb6的Collection好使? 为亚洲雪耻,为中国队加油!! 紧急求助:在那儿可以找到关于字体文件的文件格式!!! 测试adoconnection是否已关闭 请教各位大侠! 关于表设了密码的问题 开始了吗?开始了吗?北京的高程考试报名开始了吗? 用于碳化树脂的高温炉及配件该用什么型号的啊?浙江哪个厂家有这种高温炉? 蓄热式推钢加热炉和蓄热推钢式加热炉有区别么?两者是一个意思么 能把化学化工物性数据手册,无机,有机发给我吗?急用啊,wangxinfeng-1990@163.com 瀑布落差30米,假如在下落过程中机械能减少量全部转换为水的内能求水的温度升高多少减少机械能等于增加内能mgh=cmt为什么只需求热量?内能不是包括动能和势能吗.温度是动能的标志 但是为 请问这几道题怎么做?第二道题我觉得是对的.请说明方法,最好可以用图.最好可以在纸上写拍下来.急求. 推钢式加热炉150mm*150mm规格的钢坯,出钢的时候为什么会成长方形 镁条在空气中燃烧生成氧化镁、氮化镁和碳化作烟跑掉了是什么意思?难道生成的是气体? 最好写纸上. 什么物质分解可以同时得到碘酸钠和碘化钠 同温同压下,同体积的氧气和甲烷,它们的原子数之比为 速回数学 最好写纸上发图 溴化锂制冷机由什么材料组成,是铜 ,铁 还是? 竹子碳化的作用是什么?竹地板碳化后有吸收有害气体的作用吗?大庄地板在竹地领域处于什么地位? 为什么水银温度计碎了可以撒上硫磺,可以去除水银吗RT 反应釜有什么作用,怎么使用 什么反应生成碳化镁 要想水压达到0.04千帕以上,水箱该离出水口多高 加氢反应釜起什么作用.它的工作原理是什么?(山梨醇生产用) 炭化铝和水能生成什么? 在同温同压下,同体积的氢气和甲烷,它们的原子数之比是.a 2:5 b 1:1 c1:5 d1:8在同温同压下,同体积的氢气和甲烷,它们的原子数之比是.a 2:5 b 1:1 c1:5 d1:8,选什么啊.为什么啊? 什么是电加热炉您回答的是电加热导热油炉,那是属于电加热炉的一种吧,有没有总体的概括啊? 在纸上画着,拍下来. 同温同压下,同体积的氢气和甲烷,它们的原子数之比是 最好是写下来然后拍成图片. 反应加热炉大小的指标是什么? 求加工中心P和L是什么意思 请教生物质锅炉的特点与安装注意事项,有知道的请帮忙解答 模具电磁感应加热炉有什么缺点?目前使用电磁感应炉加热模具是一种趋势,它有高效节能省时等诸多优点,求行家指点一下它有什么缺点. 加工中心G10后面的L--分别是什么意思 轧钢加热炉有哪几种 加热炉用什么加热炉长3.5米 宽2.5米 5米 加热方式(电/油/燃气或其他)哪种更经济高效加热国标类钢材型材(方通/圆管),升温至400度左右一般需要多长时间,以及其他注意事项, 等质量的氢气氧气氮气氖气甲烷和二氧化碳气体,所含分子数由大到小的顺序是原子数由大到小的顺序是 轧钢加热炉如何节约天然气 什么叫加热炉热效应 加工中心四轴a前面有个l是什么意思 求做轧钢加热炉温度均值控制系统课设 保护环境 寄语未来的明信片怎么写?写什么? 加工中心F.Q.R各代表什么意思 求求求求求急:轧钢上的加热炉高压冷却水管焊口开了,但是水还很烫,又不能停产,怎么能解决裂缝呢?怎么焊接? 操作题第一小题怎么画,画纸上发过来 十万火急,十万火急,绿矾与NH3HCO3一比二反应,怎么可以把水约了?这不是晶体吗 碘化钠中碘的化合价是多少? 怎样在一张纸上画出最多的花?(创新题) 哎,老师说要总结化学反应现象,很多都不会,/ 1.铜与氧气在加热的条件下的反应现象 2.汞与氧气在加热条件下的反应现象 3.过氧化氢分解的反应现象 4.实验室制氧气的反应现象 5.氯酸钾加热生 .次碘化钠和碘酸钠如何分离?用碘单质和烧碱反应得次碘酸钠和碘化钠,然后怎么把二者分离开来,或者是否可以加热把其中的次碘酸钠分解为碘化钠?/我知道了我现在目的是要制取碘化钠我用 液氧低温储罐里面的空气怎么去除干净 木炭机和炭化炉价格要多少? 有一位哲学家在对世界赞美时在纸上画下了?有一则寓言说,文学家,科学家,企业家和哲学家聚会是有人提议,各自用一句话来描述和赞美世界.文学家说:“这世界真是太美了!”科学家认真的说 内筒体是常压平盖储存容器,介质为极度危害的;夹套是0.2Mpa压力,介质是蒸汽,请问是几类压力容器? 谁能告诉我一下木炭机设备的炭化炉的材质是什么,还有炭化炉的构造! 写纸上.照下来.必赞 化学化工物性数据手册,无机,有机,发给我吧 谢谢 yanghouyin@163.com 木炭机的炭化炉之木炭机中占有怎样的地位呢? 不锈钢水箱会不会生锈?304材质的水箱会生锈吗?壁厚和使用寿命成正比吗? 请问谁有化学化工物性数据手册(无机和有机)的哦,发给我哦,谢谢!yanting721@163.com请各位帮帮忙哦,十二分感谢!!! 如图最好写在纸上照下来 求素描大神,帮忙将下面那画,画成素描,画在纸上,然后拍下来 发出来就可以了画纸上面拍下了可以不要背景 各位好心人,谁有化学化工物性数据手册,无机,有机,发给我吧 谢谢 zhongmianjun@163.com谢谢 如图,答案要详细最好写纸上. 23、24、25、26求过程 写纸上照23、24、25、26求过程 写纸上照下来下来.必赞 能不能也给我发一个《化学化工物性数据手册》,非常感谢,我的邮箱nygbook@163.com
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘