第1章 多媒体应用程序的编程 1
1.1 编程环境 1
1.2 应用程序的编程方式 1
1.3 OS/2 多媒体应用程序的要求 3
1.4 扩充设备的支持 4
第2章 媒体控制接口 5
2.1 命令消息和命令字符串接口 5
2.1.1 命令消息 6
关于这本书 6
2.1.2 命令字符串 7
2.1.3 标志Wait 和Notify 8
2.1.4 通知消息 9
2.1.5 设备命令的时间格式 11
2.2 打开媒体设备 14
2.2.1 文件类型联系 15
2.2.2 默认和指定设备 15
2.2.3 共享标志 15
2.2.5 使用命令消息接口 16
2.2.4 设备别名 16
2.3 内存节目单 18
2.3.1 时钟样板程序的节目单例子 20
2.3.2 节目单动态修改 25
2.3.3 用节目单进行录音 26
2.4 操作的编辑 26
2.4.1 剪切板和资源格式 26
2.4.2 音频媒体驱动程序的剪切板命令 29
2.5 应用程序的设备共享 32
2.5.1 得到共享设备的控制 32
2.5.2 以专用方式使用设备 35
2.6 设备组 36
2.6.1 二重唱演奏器(Duet Player)样板程序 37
2.6.2 资源的分配 38
2.7 事件的同步 39
2.7.1 尾接点 39
2.7.2 位置通知 40
2.8 系统值 41
2.8.1 时钟样板程序的字幕查询 42
第3章 多媒体逻辑设备 43
3.1 多媒体信息和OS/2多媒体连接器 43
3.2 连接器类型 44
3.3 使用IBM M-声卡的连接器举例 45
3.4 建立设备间的连接 45
3.5 默认值和设备文本的连接 45
3.7 各类连接器允许的连接 46
3.6 媒体驱动程序支持的连接器 46
第4章 混响放大设备 48
4.1 Amp 流连接器 49
4.2 混响放大设备的共享 49
4.3 音频调节特性 50
4.4 主控音量和混响放大设备 50
4.5 混响放大器命令消息 50
4.6 混响放大连接器 51
4.7 M-声卡特性 51
5.1 波形流连接器 53
第5章 波形音频设备 53
5.1.1 波形音频设备特性 54
5.2 波形数据的格式 54
5.2.1 M-声卡特性 54
5.3 音频设备的功能 55
5.4 使用波形音频设备 56
5.4.1 打开波形音频设备 56
5.4.2 录制波形文件 57
5.4.3 创建新文件 57
5.5 播放和录制non-RIFF 波形 59
5.6 创建波形的节目单 59
5.6.1 节目单结构 59
5.6.2 节目单的推荐设置 63
5.7 波形单频命令消息 63
5.8 波形音频的连接器 64
第6章 音序器设备 66
6.3 MIDI 数据类型 67
6.1 音序器设备特性 67
6.2 MIDI 流连接器 67
6.4 MIDI 的通用特性 68
6.4.1 通道安排 68
6.4.2 间隔安排 68
6.4.3 击键安排 70
6.5 MIDI 影射功能 70
6.6 对MIDI 歌曲作者的提示 71
6.7.1 播放MIDI 歌曲 72
6.7 使用音序器设备 72
6.7.2 创建MIDI 内存文件 73
6.8 音序器命令消息 74
6.9 音序连接器 76
第7章 CD 音频设备 77
7.1 CD 格式 77
7.2 混合格式的CD 78
7.3 CD-ROM 驱动器和数据传输 78
7.4.2 使用混响放大设备时的音量控制 79
7.4.1 使用内置DAC 的音量控制 79
7.4 使用CD 音频设备 79
7.3.1 对混响放大设备的争夺 79
7.4.3 播放CD 80
7.4.4 更换盘片 81
7.4.5 传输数据方式的独特性 82
7.5 CD-DA 命令消息 82
7.5.1 CD 音频连接器 83
第8章 CD-XA 设备 84
8.1 CD-XA 光盘格式 84
8.2 CD-XA 数据类型 85
8.3 CD-XA 设备的使用 85
8.3.1 设置初始流 86
8.3.2 XA 流连接器 87
8.3.3 更换盘片 87
8.4 CD-XA 命令消息 87
9.2.1 打开设备 89
9.2 视盘设备的使用 89
9.1 设备特性 89
第9章 视盘设备 89
9.1.1 视盘格式 89
9.2.2 设置设备 91
9.2.3 搜索和步进 91
9.2.4 播放视盘 91
9.2.5 设置尾接点和位置提示 92
9.3 视盘机返回错误值 92
9.4 视盘命令消息 93
10.2 关于Ultimotion 95
10.2.1 数据流功能 95
第10章 数字视频设备 95
10.1 压缩格式 95
10.2.2 压缩率 96
10.2.3 计算的复杂性 97
10.3 使用数字视频设备 97
10.3.1 打开设备 97
10.5 播放硬件辅助的MPEG 文件 98
10.4 播放运动的视频文件 98
10.6 播放动画文件 99
10.7 录制运动视频 99
10.8 编程时的注意事项 100
10.8.1 数字视频的PM 窗口 100
10.9 程序定义的窗口 100
10.9.1 应用程序窗口再分类 101
10.10 设置频道选择设备 101
10.11 数字视频命令消息 102
第11章 直接接口视频扩充(DIVE) 103
11.1 关于DIVE 103
11.1.1 DIVE 显示引擎功能特性 103
11.2 使用DIVE 106
11.2.1 DIVE 图象缓冲区 106
11.2.2 DIVE 调色板 107
11.2.3 位块传输器操作 109
11.2.4 直接帧缓冲区存取 110
第12章 字幕 113
12.1 制作字幕文件 113
12.2 在窗口中显示字幕 114
12.3 字幕实例应用程序 115
第13章 OS/2 多媒体控制 119
13.1 图形按刍 119
13.1.1 风格 120
13.1.2 物主(Ownet)通知 120
13.1.3 控制消息 121
13.1.4 制作图形按钮 121
13.1.5 动画式图形按钮 122
13.1.6 双态图形按钮 124
13.1.7 为CD 唱机图形按钮处理消息 125
13.2 次级窗口 126
13.2.1 与PM 对话窗口函数的兼容性 127
13.2.2 制作次级窗口 127
13.2.3 无模态次级窗口 128
13.2.4 次级窗口消息框 129
13.2.5 在系统菜单中增加Default Size 项 130
第14章 多媒体I/O 文件服务 131
14.1 MMIO 构造 131
14.2 可安装I/O 过程 132
14.2.1 I/O 过程分类 132
14.2.2 标识一个I/O 过程 132
14.2.3 内部存储系统过程 133
14.2.4 OS/2多媒体提供的文件格式I/O 过程 133
14.2.5 安装I/O 过程 135
14.3 CODEC 过程 138
14.3.1 CODEC 函数、消息以及数据结构 139
14.3.2 安装CODEC 过程 140
14.4 MMIO 数据结构 141
14.5 基本I/O 函数 142
14.5.1 打开或创建一个文件 142
14.5.3 改变文件中的位置 143
14.5.2 从文件读以及向文件写 143
14.5.4 纠正错误 144
14.6 有缓冲区的文件输入输出 144
14.6.1 使用有缓冲区的文件I/O 打开一个文件 144
14.6.2 控制有缓冲区的输入输出 145
14.6.3 排空一个输入输出缓冲区中的内容 145
14.6.4 设置或修改输入输出缓冲区 145
14.7 直接访问文件输入输出缓冲区 146
14.7.1 获取缓冲区信息 147
14.7.2 从缓冲区读或向缓冲区写 148
14.7.3 推进文件输入输出缓冲区 148
14.7.4 结束直接访问文件输入输出缓冲区 149
14.8 内存文件输入输出 150
第15章 资源交换文件格式(RIFF)服务 152
15.1 RIFF 文件结构总览 152
15.1.1 FIRR 块 152
15.2 RIFF 文件函数 153
15.1.2 LIST 块 153
15.2.1 MMCKINFO 数据结构 154
15.2.2 四字符代码 154
15.2.3 创建RIFF 块 154
15.2.4 在块之间移动 155
15.2.5 下行到块中 155
15.2.6 查找块 156
15.2.7 上行出块 156
15.3 RIFF 复合文件总览 156
15.4 RIFF 复合文件函数 157
15.4.1 MMCFINFO 结构 158
15.4.2 打开创建RIFF 复合文件 158
15.4.3 关闭RIFF 复合文件 159
15.4.4 检索信息 159
15.4.5 修改CTOC 标题 160
15.4.6 MMCTOCENTRY 结构 160
15.4.7 向CTOC 块增加一个入口 160
15.4.8 修改一个CTOC 入口 160
15.4.11 向CGRP 块中加入一个元素 161
15.4.10 删除一个CTOC 入口 161
15.4.9 查找一个CTOC 入口 161
15.4.12 复制CTOC 和CGRP 块 162
15.4.13 压缩RIF 复合文件 162
附录A 应用程序实例 163
A.1 子目录结构 163
A.2 编程概念 163
A.3 字符串检验实例 163
A.3.1 程序流程图 164
A.4.1 程序流程图 166
A.4 时钟实例 166
A.4.2 播放钟鸣 167
A.5 AVCI/O 过程安装实例 168
A.5.1 程序流程图 168
A.6 二重唱演奏器Ⅰ和Ⅱ 169
A.6.1 二重唱演奏器Ⅰ 169
A.6.2 程序流程图 169
A.7.1 程序流程图 171
A.6.3 二重唱演奏器Ⅱ 171
A.7 字幕制作功能程序(Caption Creation Utility) 171
A.8 字幕实例应用程序和字幕DLL 172
A.8.1 程序流程图 172
A.9 音频记录器实例(Audio Rccorder Sample) 173
A.9.1 程序流程图 174
A.10 电影实例 174
A.10.1 程序流程图 174
A.11 非对称记录实例 175
A.11.1 源代码 176
A.11.2 实时记录与非对称记录 176
A.11.3 非对称记录构造图 176
A.11.4 MMMULTITRACKREAD 操作 177
A.11.5 多磁道判读 178
A.11.6 MMMULTITRACKWRITE 操作 178
A.11.7 多磁道写入 180
A.14 多媒体消息探测器 181
A.13 多媒体浏览器 181
A.12 DIVE 实例程序 181
A.14.1 程序流程图 182
A.15 UlitEyes 实例程序 183
A.15.1 制作一个UltiEyes 电影剪辑 183
附录B 用MINSTALL 安装一个程序 185
B.1 安装概要 185
B.2 主控制文件 185
B.2.1 CONTROLSCR 标题 186
B.2.2 CONTROLSCR 子系统定义 188
B.3 文件列表控制文件 191
B.4 改变控制文件 194
B.4.1 支持宏 194
B.4.2 INI 改变控制文件 195
附录C 字幕 DLL 198
C.1 cclnitialisze 函数 198
C.2 ccSendCommand 函数 198
C.3 ccTermmate 函数 200
C.3.2 CC STAR??ARMS 数据结构 201
C.3.1 CC SEI PARMS 数据结构 201
C.3.3 CC SIA????ARMS 数据结构 202
C.3.4 BOOL 202
C.3.5 HWNP 202
C.3.6 MPAKAM 203
C.3.7 PSZ 203
C.3.8 SHOR 203
C.3.9 CLO? 203
C.3.10 USHOR 203
C.3.11 ROH? 203
附录D 高级服务API 204
D.1 为应用??制作只?音频??的宏 204
D.2 使用MC 字符串命令创建REXX 命令文件 205
D.3 二重唱演奏????? 205
附录E 注意事项 207
E.1 商标 207
词汇表 208