基于VB的流媒体解码与播放技术
日期:2008年2月12日 作者:-
一、 前言
流媒体的定义很广泛,大多数时候指的是把连续的影像和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器就可以观看的视频/音频传输、压缩技术。流媒体也指代由这种技术支持的某种特定文件格式:压缩流式文件,它通过网络传输,并通过个人电脑软件进行解码。面对流媒体技术的迅猛发展,作为软件技术开发人员,关心的是将如何应对的问题。流媒体的处理,以其复杂性和技术性,一向受到工业界和技术界的关注。特别是随着互联网的普及,流媒体通过网络广泛应用在工业控制、现场监控、视频会议、大众娱乐等方面,选择一种合适的应用方案,可以达到事半功倍的目的。
MCI是微软为Windows最初提出的多媒体编程接口,它管理媒体控制接口(MCI)设备上的多媒体文件的记录与回放。它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频CD播放器和视频磁带记录器及播放器等设备发出MCI命令,还支持 Windows (*.avi) 视频文件的回放。MCI编程实现起来并不困难,但是对于用户要求获取的某些有关压缩数据流的信息和希望实现的某些功能,比如图线尺寸、Copmression Rate、图形的缩放显示等,上叙控件所提供的为方便程序开发人员使用的高层接口已不适用,要想在此基础上实现对底层的一些操作,难度可想而知;另外随着多媒体技术的迅速发展,各种压缩算法在该领域的的应用,MCI技术越来越显的力不从心,最明显的是它不支持可变比特率的压缩算法,对于处理DVD等近年出现的多种新的媒体格式也已经显的无能为力,怎么办呢?为此我们介绍一种建立在DirectX技术上的方法来实现操作多媒体数据流。作为MCI的"接班人",微软适时推出了建立在DirectX(包含DirectDraw、DirectSound、Direct3D)之上的DirectShow技术,它是在DirectX之上的媒体层,支持来自本地或网络的各种视频、音频压缩格式的媒体文件的解码和回放,可以从设备上捕捉多媒体流,可以回放各种压缩算法处理的流媒体。这些格式包括:MPEG的音频和视频标准、音频和视频交互标准(AVI)、WAVE、MIDI和高级流格式ASF。
DirectShow对媒体数据处理采用流媒体(Multimedia Stream)的方式,在应用中使用该方式可以大大的减少编程的复杂程度,同时又可以自动协商从数据源到应用的转换,流接口提供了统一的、可以预测的数据存取的控制方法,这样应用程序在播放媒体数据时不需要考虑它最初的来源和格式。
上面说了那么多,还没有进入正题,其实在Windows\System下有一个Windows中自带的用于控制运动图像播放的动态链接库Quatrz.dll,它实现了对DirectShow的简单封装,或者说它是当今流行的DirectShow技术的前身,在该库中定义了IBasicAudio,IbasicVideo、IBasicVideo2,IMediaEvent 、IMediaEventEx、ImediaPosition、ImediaControl和IVideoWindow等类,程序开发人员可以利用它们方便地控制和操作各种格式的流媒体。例如,直接调用ImediaControl类的无参函数Run、Pause、Stop等就可以控制流媒体的播放进程;利用IMediaPosition类对具体播放细节进行定位操作等。对于流媒体的数据输出显示并不需要特别的控件,在VisualBasic编程中可以简单的选择一个窗体作为容器或一个PictureBox控件作为容器。为了使用该动态连接库,你需要作的仅仅是在生成一个项目后,点击VB开发环境的工程/引用菜单,在弹出的对话框中选择ActiveMovie Control type library就可以了。
二、VB开发流媒体的播放技术
为了是说明如何在VB中利用ActiveMovie Control type library实现流媒体的播放,下面给出了一个名为VBDemo的项目实现代码,该程序可以以不同的速率来播放wav、avi、mepg等多种格式的多媒体文件,同时显示多媒体文件的长度、播放速率等信息。 在这个项目的窗体上定义一个FILE(名字为mnu_File)的主菜单,它包含OPEN(名字为mnu_FileOpen)和EXIT(名字为mnu_FileExit)子菜单,分别用于打开流媒体文件和退出应用程序;工具条tbControlBar上定义三个按钮,分别为实现流媒体的"播放"、"暂停"、"停止"功能的按钮;名为picVideoWindow的PictureBox控件用来作为播放流媒体视频数据的容器;slBanlance和slVolume两个Slider控件分别用来控制媒体流的声音大小和平衡度,它们的最大最小值分别为(-10000,0)和(-5000,5000);在界面的信息栏中,txtDuration和txtBox这两个TextBox控件分别用来显示正在播放的流媒体的时间长度和播放速率;关于播放速率,用户可以通过optplaybackR单选框来选择正常播放、两倍速率播放还是半速播放。程序编译后的界面如下(抱歉,使用考屏的方法无法将播放的图像一同考贝下来): - [1] [2] [3] [4] [5] [6] [7] 下一页
-
- 基于VB的流媒体解码与播放技术 相关文章:
- ·卡巴斯基更新服务器列表
- ·Cisco交换机基本命令配置大全
- ·C#基础概念二十五问
- ·卡巴斯基使Word文件不能保存的解决办法
- ·驱动完全手册——基础篇
- ·计算机应用基础操作题
- ·Auto CAD三维基础实例:弯管制作教程
- ·网络游戏封包基础
- ·诺基亚手机调查报告
- ·[真三国无双4]基本操作及战斗系统
- 基于VB的流媒体解码与播放技术 相关软件
- ·街机麻将电子基盘PC模拟版
- ·Kaspersky(卡巴斯基) KIS 安全套装 V6.0.2.621 MP2 简体中文正式免激活版
- ·龙卷风基金投资分析软件 2008.6.28.1758
- ·基础会计学视频教学资料第一章
- ·西风狂诗曲之基督山恩仇记
- ·玩转电脑的基本功
- ·MS-DOS基础教程 V4.5
- ·卡巴斯基密钥查看器(KL Key Viewer) V4.0.0.0
- ·朱镕基传
- ·kof2003基本连续技MTV
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·VB+Access设计图书管理系统
- ·VB设计有语音报时和报警功能的闹钟
- ·VB控件精选45例下载
- ·VB中使用EXCEL输出
- ·窗体控件大小随窗体大小变化而变化
- ·用VB跟我学做记事本(很简单哟)
- ·CreateFile
- ·用VB编写记事本
- ·VB打造超酷个性化菜单(六)
- ·webbrowser 技巧2 (收藏)
- ·VB中使用DirectX库的简明教程
- ·通信控件MSComm使用详解
- ·用API修改注册表的完整模块
- ·用VB6.0编写自己的MP3播放器
- ·利用VB控件操作目录和文件夹
- ·GetClientRect
- ·180个VB图形界面类源码实例下载
- ·Excel中的宏的应用
- ·VB编程之路-如何让界面美化
- ·在VB中实现延时(等待)的几种方法
特别推荐
- ·VB 2005的重构支持可以支持智能标记了
- ·怎样检查声卡的存在
- ·用VB6.0编写自己的MP3播放器
- ·深入浅出VB.Net Windows Form
- ·简易股票税率计算器
- ·VisualBasic 6编程中的汉字处理
- ·自动读取用户登陆名称,再进行密码验证
- ·用API函数遍历指定驱动器、目录的文件
- ·VB的数据库类型源码60实例下载
- ·用VB制作IE工具条自定义按钮
- ·用VB创建MS Office的COM加载项
- ·教你用Visual Basic制作安装程序
- ·WebComputing━ADO总结报告
- ·vsprint打印实例
- ·用VB实现一个简单的ESMTP客户端
- ·webbrowser 技巧2 (收藏)
- ·SetForegroundWindow
- ·用API修改注册表的完整模块
- ·VB打造超酷个性化菜单(六)
- ·WINDOWS消息说明
