第一部分 使用多媒体 1
第1章 用Visual Basic开发多媒体 1
1.1 多媒体元素 1
1.1.1 音频 1
目录 1
1.1.2 数字视频 3
1.1.3 模拟视频 5
1.1.4 动画 5
1.1.5 图象 6
1.1.6 文本 6
1.2 高级多媒体服务 7
1.2.1 媒体控制接口 7
1.2.2 高级音频服务 7
1.3 低级音频服务 7
1.3.3 辅助音频设备 8
1.4 Visual Basic扩展:为Visual Basic添加多媒体功能 8
1.3.2 低级MIDI音频 8
1.3.1 低级波形音频 8
1.4.1 DLL支持 9
1.4.2 Visual Basic控件(VBX) 9
1.4.3 OLE自动服务器 9
1.4.4 用Visual Basic建立OLE自动服务器 10
1.5 新一代产品:OLE自定义控件(OCX) 10
1.6.3 标志控件 11
1.6.2 图象控件 11
1.6.1 MCI控件 11
1.6 Visual Basic的多媒体控件 11
1.6.4 图片剪贴控件 12
1.6.5 图片框控件 12
1.7 多媒体数据库开发 12
1.8 超文本和热区 13
1.9 相关内容 13
第2章 Windows多媒体开发 15
2.1 将多媒体能力集成到Windows中 15
2.2 16位Windows多媒体体系结构 16
2.3 Windows NT:32位多媒体开发平台 18
2.4 Windows 95:为多媒体开发定义新标准 18
2.2.1 扩展Windows多媒体使其包含数字视频 18
2.2.2 将多媒体能力扩展到32位 18
2.4.1 即插即用方式配置硬件 19
2.4.2 即插即用BIOS的功能 20
2.5 不经MSCDEX访问CD-ROM 20
2.6 附加的音频压缩编码解码器 21
2.6.1 选择采集和播放用的音频编码解码器 23
2.6.2 使用有编码解码器的音频压缩管理器 24
2.7 Windows 95:数字视频平台 25
2.9 相关内容 27
2.8 用MCI驱动程序控制多媒体设备 27
第3章 媒体控制接口(MCI) 29
3.1 多媒体服务与Visual Basic 29
3.2 Windows多媒体服务概述 30
3.3 MCI设备类型 30
3.4 多媒体音频服务 32
3.4.1 波形音频 32
3.4.2 MIDI音频 36
3.4.3 CD音频 39
3.5 激光影碟播放器 40
3.6 盒式录象机 42
3.7 数字视频 44
3.8 叠加视频 47
3.9 动画 48
3.10 相关内容 50
第4章 Visual Basic的音频能力 51
4.1 高级波形函数 51
4.1.1 使用MessageBeep()函数 51
4.1.2 使用sndPlaySound()函数 52
4.1.3 使用PlaySound()函数 54
4.2.1 使用mciSendCommand()函数 55
4.2 使用MCI播放波形文件 55
4.2.2 产生字符串地址 57
4.2.3 打开设备 58
4.2.4 检查MCI返回的错误代码 59
4.2.5 播放设备 60
4.2.6 关闭设备 61
4.2.7 WAVEPLAY程序 61
4.3 创建CDPLAYER应用程序 64
4.3.1 使用mciSendString()函数 68
4.3.2 初始化程序 69
4.3.3 显示CD状态信息 73
4.4 播放MIDI文件 76
4.5 记录多媒体音频文件 78
4.6 相关内容 78
第二部分 图形界面 79
第5章 图形和调色板 79
5.1 使用Visual Basic的内置功能 79
5.1.1 AutoRedraw和ClipControls 80
5.1.2 DrawMode和相关的属性 81
5.1.3 图片和图象控件 81
5.2 建立幻灯演示引擎 82
5.1.4 速度和内存的使用 82
5.1.5 Paint事件 82
5.2.1 为Form_Load和Form_Paint事件编码 83
5.2.2 设置Form_Resize事件 87
5.3 Visual Basic中的图层 88
5.3.1 在包含图形和非图形控件的窗体上绘图 89
5.3.2 控制Visual Basic在屏幕上的画图方式 90
5.4 尝试Draw_Mode和其他绘图技巧 92
5.4.1 系统地了解DrawMode 93
5.4.4 使用与Xor相关的功能 94
5.4.2 使用最简单的DrawMode功能 94
5.4.3 学习与笔颜色相关的DrawMode功能 94
5.4.5 研究合并操作类的使用 95
5.4.6 应用Mask类的操作 96
5.5 探索Visual Basic是如何处理颜色的 96
5.5.1 Visual Basic颜色函数 98
5.5.2 用列表框控件控制颜色选择 99
5.5.3 获取、转换和显示颜色值 100
5.5.4 使用代码选定颜色的定义方式 102
5.6 使用256色时调色板的闪烁 103
5.6.1 理解调色板闪烁 104
5.6.2 防止调色板闪烁 105
5.7 Windows GDI、调色板和动画概述 106
5.7.1 调色板动画演示 106
5.7.2 计算系统中有多少种颜色 106
5.7.3 确定象素的实际颜色 107
5.7.4 管理调色板 107
5.7.5 理解调色板动画 108
5.7.6 保留调色板和其他对象的句柄 108
5.8 创建调色板动画演示 109
5.8.1 建立逻辑调色板 110
5.8.2 制作和着色矩形 113
5.8.3 动画调色板 114
5.9 相关内容 117
第6章 建立切换效果 118
6.1 在多媒体中使用切换效果 118
6.2 九种常用切换 118
6.3 用Visual Basic建立简单的动画效果 119
6.3.2 介绍PaintPicture 120
6.3.1 理解小位图的切换 120
6.3.3 理解大图象的切换 121
6.4 用GDI建立简单的动画效果 122
6.4.1 使用块传输函数 123
6.4.2 理解三元光栅操作(ROP) 124
6.4.3 内部常量及对象浏览器的使用 127
6.5 块传输及简单光栅操作的实例说明 127
6.5.1 在picProduct_Paint事件中合并两个位图 128
6.5.2 运行ROPDEM 129
6.6 产生滑入(wipe)效果 129
6.6.1 Wipe效果的产生步骤 130
6.6.3 理解Wipe引擎 132
6.6.2 在窗体中对Wipe进行声明 132
6.6.4 调色板不兼容问题的处理 133
6.7 在光栅操作中使用刷子 134
6.7.1 了解位图结构 134
6.7.2 刷子的构造方法 135
6.8 构造你自己的刷子 135
6.8.1 CreateDIBitmap的声明 136
6.8.2 类型BITMAPINFOHEADER的声明 137
6.8.4 类型RGBQUAD的声明 138
6.8.3 类型BITMAPINFO的声明 138
6.8.5 构造刷子所需的一些声明 139
6.9 MakeBrush函数的设计 139
6.9.1 位图的初始化 140
6.9.2 在位图中放入图象 141
6.9.3 了解程序是如何工作的 141
6.9.4 实际刷子的构造 142
6.10 ROP刷子演示程序的构造 142
6.10.1 创建PicBrush_Paint事件的方法 143
6.10.2 运行BRDEM 144
6.11.1 选择多媒体中产生淡入淡出效果的方法 145
6.11.2 修改以前的模块以产生淡入淡出的效果 145
6.11 设计淡入淡出效果 145
6.12 Fade效果演示程序的构造 147
6.12.1 使淡入淡出过程动起来:FadeOne()函数 149
6.12.2 随机刷子的构造:MakeFadeBrush()和RandomizeBrushPixels()函数 150
6.12.3 Fade演示程序的运行 151
6.13 其他切换效果的构造 153
6.14 相关内容 153
7.1 理解超文本应用程序 154
第7章 超文本和热区 154
7.2 使用超文本应用程序示例 155
7.3 生成超文本文档 155
7.3.1 设计超文本文档 156
7.3.2 定义主题标题 157
7.3.3 定义图象引用 157
7.3.4 定义热区 158
7.3.5 定义主题文本 159
7.3.6 定义链接单词和短语 160
7.4 建立HYPERTXT应用程序 164
7.4.1 跟踪超级链接 166
7.4.2 打开超文本文档 167
7.4.3 计算主题数 169
7.4.4 显示主题 170
7.4.5 存储热区 172
7.4.6 存储文本链接 173
7.4.7 使鼠标响应热区 174
7.4.8 响应链接的选择 176
7.4.9 响应浏览按钮 178
7.4.10 响应返回按钮 179
7.4.11 处理单词换行 181
7.4.12 激活和失效按钮 183
7.5 改进HYPERTXT应用程序 184
7.6 相关内容 184
第三部分 视频能力 186
第8章 数字视频的采集与编辑 186
8.1 数字视频概述 186
8.3 数字视频文件格式 187
8.2.3 混合数字视频 187
8.2.1 纯软件数字视频 187
8.2 数字视频的类型 187
8.2.2 纯硬件数字视频 187
8.4 数字视频文件的采集 188
8.4.1 存储空间 188
8.4.2 播放与采集速率 190
8.4.3 播放与采集的视频窗口大小 190
8.4.4 图象质量 191
8.4.5 单步采集 192
8.4.6 视频采集工具 192
8.4.8 Windows 95环境下的视频采集 209
8.4.7 Windows 3.1环境下的视频采集 209
8.4.9 Windows NT环境下的视频采集 210
8.5 相关内容 211
第9章 叠加视频外设的使用 212
9.1 了解叠加视频 212
9.1.1 模拟视频的使用 213
9.1.2 模似视频的标准与格式 214
9.2 使用模拟视频的难点 214
9.2.2 非标准MCI命令集的使用 215
9.2.1 多个设备的控制 215
9.2.3 了解叠加视频设备 216
9.3 激光影碟设备的使用 216
9.3.1 激光影碟类型 217
9.3.2 叠加视频卡的同步 217
9.4 录象设备的使用 218
9.5 Video Center示例应用程序 219
9.5.1 应用程序中的控件 220
9.5.2 Video Center应用程序中所用的设备 224
9.5.3 编译指令(Compilation Directives)的使用 225
9.5.4 外部设备的装载 227
9.5.5 图象的保存 230
9.5.6 应用程序的退出 232
9.5.7 外部设备的播放 232
9.6 相关内容 233
第10章 动画 235
10.1 用MCI命令集播放动画 235
10.1.1 播放动画的OLE对象的构造 236
10.1.2 OLE MCI对象在应用程序中的使用 242
10.1.3 与动画类一起使用MCI控件 243
10.2 调色板动画 245
10.2.1 在Animation Viewer应用程序中添加帷幕光线 245
10.2.2 帷幕光线的绘制 246
10.2.3 使帷幕光线闪烁 250
10.3 在Animation Viewer程序中添加基于对象的动画 252
10.4 相关内容 253
第11章 数字视频播放的使用 254
11.1 数字视频MCI接口 254
11.2 数字视频播放方法 255
11.2.1 mciSendString函数的使用 256
11.2.2 用MCI OLE控件播放数字视频 263
11.2.3 用MediaDeveloper OLE控件播放数字视频 271
11.3 MPEG视频的使用 277
11.4 相关内容 278
第四部分 高级技术 279
第12章 OLE自定义控件的构造与使用 279
12.1 为什么需要OLE及自定义控件 279
12.2 OLE控件:不只是VBX的扩展 280
12.3.1 用ControlWizard生成一个OLE控件 281
12.3 控件开发简介 281
12.3.2 Visual Basic中模板控件的使用 288
12.3.3 DragDrop控件中的功能定义 289
12.4 根据指定的功能构造控件 290
12.4.1 在控件中加入属性 293
12.4.2 OLE控件的实现 294
12.5 定义OLE控件的属性页 302
12.5.1 属性页的创建 302
12.5.2 属性页与控件的连接 302
12.6 定义文件的使用 305
12.7 可用属性、方法及事件的确定 306
12.8 资源脚本的浏览 308
12.9 相关内容 311
第13章 同步演示节目的构造 312
13.1 同步演示节目的使用 312
13.2 演示节目布局的定义 312
13.2.1 使用Visual Basic部件播放演示节目 312
13.2.2 演示软件功能的定义 313
13.3 演示文件格式的构造 314
13.3.1 在演示文件格式中加入脚本命令 314
13.3.2 在脚本命令中加入参数 315
13.3.3 将命令脚本以用户自定义的数据类型进行存储 317
13.3.4 演示脚本的读取 318
13.4 演示基准的建立 321
13.4.1 Playback计时器的使用 321
13.4.2 演示的播放 321
13.5 相关内容 326
第14章 采用JET引擎的多媒体数据库 327
14.1 Visual Basic数据库访问特征 327
14.2.2 Workspace对象 328
14.2 数据访问对象资料 328
14.2.1 DBEngine对象 328
14.2.3 Database对象 329
14.2.4 TableDef对象 329
14.2.5 QueryDef对象 329
14.2.6 Recordset对象 329
14.2.13 Property对象 330
14.2.12 Relation对象 330
14.2.10 User对象 330
14.2.11 Group对象 330
14.2.8 Index对象 330
14.2.7 Field对象 330
14.2.9 Parameter对象 330
14.2.14 Container对象 331
14.2.15 Document对象 331
14.2.16 数据定义语言(Data Definition Language) 331
14.2.17 数据操作语言(Data Manipulation Language) 331
14.3 将多媒体数据存入数据库中的方法 332
14.3.1 基于文件的多媒体数据库 332
14.3.3 在Visual Basic中创建数据库 333
14.3.2 多媒体内容浏览程序的构造 333
14.3.4 基于文件的Multimedia Content Browser的构造 340
14.3.5 在Content Browser应用程序中加入多媒体信息 346
14.3.6 多媒体数据的查找与定位 351
14.3.7 基于BLOB的多媒体数据库 355
14.4 相关内容 365
附录A MCI命令集 366
A.1 MPEG MCI命令集 366
A.2 数字视频MCI命令集 374
A.3 动画MCI命令集 382