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

用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"即可。(河南 新天)
[开源推荐]Riot.js:不足1KB的MVP客户端框架 研发周报:最难忘的Bug调试经历 NSA如何侵入Google和雅虎的私有数据网络? 飞天5K:开放比开源更有意义 MDCC之移动娱乐游戏峰会:手游金玩奖即将揭晓 开源巨人火狐浏览器:9周岁生日快乐! 感受OpenStack Summit香港大会 渣打科营中心:创建以技术为核心的企业文化 抱怨IT公司人才缺乏?留住现有人才方是正途 专访Esri中国区技术总监:打造新一代WebGIS平台 TIOBE 2013年11月编程语言排行榜:C#、Transact-SQL及VB.NET厚积薄发 透过KitKat,Android或与ChromeOS融合? 利用Spring Data Neo4j搭建推荐系统 七丽借百度SiteApp移动化 分发及变现能力获大幅提升 Go语言4岁了 生日快乐 谷歌发布Web延迟基准测试工具 专访JS-Git创始人Tim Caswell:让Git运行于任一平台 一段代码引发的思考 2013年美国开发者薪资调查报告 MDCC之移动娱乐游戏峰会:金玩奖揭晓最火游戏 算法为王:且看Mac Mini如何超越1636节点的Hadoop 鲍尔默成大善人?微软正式废除员工排名评审制度 工信部软件司副司长陈英为MDCC 2013大会致开场辞 全民移动•重塑世界 2013移动开发者大会盛大开幕 泯灭Web App可用性的七个开发错误 保益互动创始人曹军:听到的世界更精彩,盲人应用背后的故事 Gumi公司CEO国光宏尚: 大公开!日本手游市场攻克方法! Great Hill Partners高管Chuck Goldman &amp; 南京创毅CEO William Wei:超越黑莓——下一代企业移动 高通业务拓展副总裁沈劲:智能手机2.0——以体验为中心 百度副总裁李明远:百度轻应用——长尾APP的最佳选择 中国工程院院士李德毅:大数据时代的认知计算 test:给分文本框.enabled=false;cmd_管理 不存在,我怎么给分? 各位大虾!!请教一个有关建立oracle8i表之间关系的问题???? 你会吗?有用但有点难度的问题。n个数的最长单调子序列的O(nlgn)的算法. VB很菜的问题 请帮忙 if问题 我考中程查分怎么没有成绩??我是上海的!! Delphi学习(-):IDE快捷键大征集: 各位大虾!!!嘻嘻~`我是新手哦,请大家帮我解次问题呀~~~`哇!!这个问题好晕哦~` 为什么只能看四页问题? 上海的软考成绩什么时候出来??? Delphi中如何执行ZIP文件?谢谢! 菜鸟问题:初始化代码放在哪? 在ITEMCHANGED里获得值? 如何操作dbf文件? 请推荐关于c/c++的优秀英文译本 请问: 投稿程序员杂志要多少时间才有回音? 一个难题!非常着急,希望大家帮我解决! 为什么该父类无法调用其子类. 请教CDateTimeCtrl控件问题! 高分求救!哪位哥哥能否帮我解决一下几道C编程的题目,我讲感激不尽!!!谢谢 我找到一个DELPHI的技术站点,还可以,请大家来LOOK 动态显示图片!!!!!! 本人是beginner for vc++,希望以后多交流。现请求一个vc++作的画图程序 大侠执教:投稿程序员杂志要多少时间才有回音? 有办法在控制台程序启动时,隐藏它的DOS窗口吗? 关于MFC中的Project Settings问题 两个编程的初级问题 谁能给我一个关于二叉树的完整的程序。 认识的进来聊天 , 我是东宝 (yeti_lee) 我是一名学生,学计算机(一个普通大学)。请教大家几个问题 大连成绩如何查??有人查到了吗?请聊聊 分是个累赘,我放完它~!来的就有,讲些凄惨的事情和遭遇,大家比谁惨,越惨的给分越多,兄弟我此举是为了找平衡。 怎样得到当前系统打印机的各项信息?????特别是打印纸张方向!!! 高分求救——我有几道C程序的编程题目,望各位高手帮忙解决!谢谢 哪位告诉我select语法,我忘了group by 的使用方法,谢谢! 请问哪儿有电子版的《COM编程精彩实例》,谢谢! 请问:要想学习vb和数据库的知识,哪些书比较好?请各位朋友帮忙推荐几本好书?谢了~! 请问有谁知道PB8编译后打包,PARADOX数据库驱动程序需那些啊????急!!!!!! 在oracle存储过程中怎么使用cursor作为返回值? [TIPS]Win9x和WinNT/2000下面都可以去掉OICQ广告的方法! 触发器问题 关于bdgrid的问题,高手请来,一定高分相送!!!!急 怎么建立WIN2000的域信任关系 用data控件连接DBf数据库时为什么出现“找不到可插入的ISAM”错误? 大家等会儿再吃饭!先看一看这里的送分大餐...... 他们怎么想的?居然没有bcb? 高手指教:如何在vc中控制刻录机和磁带机进行数据备份和恢复? 请问各位高手,怎样才能学好c语言。有没有什么好一点的网站和源码提供,多谢。 如何解决在向量位图背景下的窗口移动是的刷新置后问题?? 问一个问题!爱好or 程序员? 用VB如何设计好的报表,欢迎讨论! 2010年山东会考物理选修1-1答案2010年12月24号下午的 谢谢哥哥姐姐叔叔阿姨 好人一生平安 文科做的那一模块 1-1 第九题,为什么C选项是正确的 几种短周期元素的原子半径及主要化合价如下表:下列选项正确的是:元素代号 L M X R T原子半径/nm 0.160 0.143 0.102 0.089 0.074主要化合价 +2 +3 +6、-2 +2 -2A.离子半径大小:r(M+3)>r(T2-) 2010年12月山东青岛会考物理答案请将该答案发往本处,以过关. 问一下这道生物题的C选项为什么正确? W,X,Y,Z为短周期元素内除稀有气体外的四种元素,它们的原子序数依次增大,其中只有Y为金属元素,Y的最外层电子数和W相等原子的质,Y,Z两子数之和为W的X两元素质子数之和的3倍,由此可知,W是____ 关于离子反应的化学题目.在离子反应中,Mgcl2和Na(oH)2反应生成Mg(OH)2沉淀和Nacl即NA离子和CL离子.我想问的是它们都结合成了NACL怎么还能叫做自由移动的离子呢,它们不是结合到一起了吗,怎么自 高中物理化学题,急!1、将54.4g铁和氧化铁的混合物,投入到足量的稀硫酸中,充分反应后收集到4.48L氢气(标况),并测得溶液中既没有Fe3+也没有固体残留,求原混合物中铁和氧化铁的质量各为多 英语翻译现在学文章急用 有关化学离子反应的一些题目1、(1)向NaHSO4溶液中逐滴加入Ba(OH)2溶液至中性,请写出发生反应的离子方程式(2)在以上中性溶液中继续滴加Ba(OH)2溶液,请写出此步反应的离子方程式2、在一 用一众试剂除去下列各物质中的杂质,括号内为杂质,并写出离子方程式①BaCl2(HCl):试剂________离子方程式____________②O2(CO2):试剂________离子方程式____________③硫酸根离子(碳酸根离子) 翻译地址 中国福建省泉州市广平仓21号 翻译成英文是什么 一道化学离子反应的习题用碳酸钠、氯化钡和盐酸做试剂,除去氯化钠溶液中还有的少量钙离子和硫酸根离子,每种试剂只能用一次,提纯后的溶液中只准许留有钠离子、氯离子、氢离子和氢氧 高中物理化学的概念题怎么做? NaCl+CO2+NH3+H2O=NaHCO3↓+NH4Cl是什么反应类型拜托各位大神 H2O、HCl分别含有什么化学键 谁有新疆维吾尔自治区 新疆生产建设兵团 高中物理化学学业水平测试题及答案?没有答案也行- -. please发到这里或者邮箱上 sunxiaohan650@sina.com 谢谢,有用会追加分噢~历届的噢~ 黑龙江理科高中物理学教科书学哪几本? 离子反应2个高锰酸钾和16个盐酸反应生成2个氯化钾,2个氯化锰,5个氯气,8个水,问当有5.6升(标准状况下)氯气生成时,转移电子的物质的量为多少? NACL+CO2+NH3+H2O=NAHCO3+NH4CL是著名的侯氏制碱法的重要反应 不正确的是A NAHCO3D的溶解度较小B NAHCO3不是纯碱C析出固体后的溶液为NAHCO3的不饱和溶液D该反应可以获得氮肥 江西高中理科物理学几本书各本书的内容主要是什么.选修学哪几本要讲清楚.如果能讲清高一分别学哪本,高二分别学哪本就更好了. 20,21问,要过程分析 两道关于离子反应的化学题1.下列各组物质的稀溶液互相反应,无论前者滴入后者,还是后者滴入前者,反应现象相同,且离子方程式也相同的是A.Ba(HCO3)2 溶液与Ba(OH)2溶液B.NaAlO2溶液与稀硫酸溶液C 物理都学几本书?(理科)具体学哪几本? A 自由电荷的运动必定形成电流B 形成电流必须要有自由电荷C 有电压必定形成电流D 电流的单位“安培”是国际单位制中的基本单位多选的,希望认真看看再回答, 氨盐水与CO2方程式为什么不是NaCl+NH3.H2O+CO2=NaHCO3↓+NH4Cl答案是NaCl+NH3+H2O+CO2=NaHCO3↓+NH4Cl,为什么二氧化碳是与氨气和水反应而不是与氨水反应? 重庆市 物理选修学哪些课本啊? 两颗人造卫星都绕着地球做圆周运动,质量m1:m2=2:1,轨道半径之比为1:2.则他们的速度之比为多少? 一道高中文科数学导数题f(x)=x(3)-3/2ax+a(2 ) 其中括号内为上标 求0 高中化学一道有关元素周期的推断题有X、Y、Z三种短周期元素,分别位于不同的周期.已知X和Y原子最外层电子数相同,Z原子次外层只有2个电子,X和Z可以形成离子化合物X2Y,Y和Z可以形成共价化合 物理会考级别的题如图所示,在空间A、B分别放置正点电荷Q1和Q(再无其他电场或带电物体了)2,且Q1>Q2.若A、B所受电场力大小分别为F1与F2,A、B两点的场强分别为E1与E2,则比较F1与F2,E1与E2的大 高中文科数学导数设函数f(x)=x^e^x-1+ax^3+bx^2,已知x=-2和x=1为f(x)的极值点(1)求a和b(2)讨论f(x)的单调性函数f(x)=sinx+sin(2+90°),x∈R1.求f(x)最小正周期2.求f(x)的最值3.若f(x)=3/4, 高中化学推断题12、A、B、C、D是短周期元素所形成的单质,也是中学化学中常见的物质,通常情况下,A、B为 跳水运动是我国体育运动强项之一,高台跳水项目要求运动员距离水面10m的高台上跳下,完成动作后入水若运动员起跳瞬间重心离高台台面的高度为1m,斜向上跳离跳台的瞬间速度为3m/s,跳至最高 人民教育出版社的高中数学选修1-1第三章导数听不懂,谁能讲一下. 高中化学的里元素周期律的`推断题`怎么做有窍门吗`像给你一定的一直条件`让你猜测这是什么元素`` NH4Cl+NaOH=NaCl+NH3+H2O 其中为什么离子键被破坏,共价键没有被破坏 若曲线Y=2X^2-4X+P与直线Y=1相切 则实数P= ,请用导数算, 你的高中化学58个考点精讲1-58我非常需要你的高中化学58个考点精讲1-58 http://wenku.baidu.com/view/57ded6f9aef8941ea这个地址的文件下载不下来 2010年广东会考物理答案是什么 当函数F(X)=X*2的X次方 取到最小值时,X=? 安徽省高中物理、化学、数学分别有哪几本书(理科)铜陵市第五中学 求2010年广东省高二会考物理试题及答案 “abcdef为原子序数依次增大的短周期主族元素……”A,B,C,D,E,F为原子序数依次增大的短周期的主族元素.已知:A,C,F三种元素原子的最外层共有11个电子,且这三种元素的最高价氧化物对应的水化 安徽省(淮南)的高中,理科的数学、物理、化学、生物选修分别上那几本? 2011年6月广东省化学生物物理会考答案.最好能有试卷的原题对答案. 在短周期元素中同一主族能构成离子化合物的有那些 安徽省高中有没有英语竞赛?数学、物理、化学、生物竞赛各在高几年级的几月? 第八题选项C哪错了? 关于短周期元素的一道化学题在短周期元素中,氢化物的水溶液呈碱性,且能与氢元素形成一价阴离子,请问是什么元素?一价阴离子又是什么 2008 2009 2010年安徽省普通高中学业水平测试 第八题选项C哪里错了? 我是福建高中生想读文对物理化学不感兴趣 怎么做会考会比较容易过呢 会考容易过么 经历过得可以谈谈么 短周期元素方框内是短周期元素第五题不用答 第八题C选项错在哪里 浙江省高中文科生需要读哪些书?最好详细点.还有物理化学会考是考哪几本书? 化学短周期的元素性质如题 谁能告诉我所有短周期的性质 按照顺序H He Li Be B C N O F Ne Na Mg Al Si P S Cl Ar K Ca 他们及他们的氧化物的色态味 例如N:N2 无色无味气体 NO 无色气体 NO2 红棕色气体等 2010年山东省高中物理会考答案 河北省会考2011地理试题 高中文理科会考数学物理化学题目是不是不一样的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn