X3D对多媒体的支持是通过这三个节点来实现的:AudioClip(音频数据节点)、Sound(音频播放节点)以及MovieTexture(影像纹理节点)。
在本讲中,我们先来简单地介绍这三个节点的属性,然后举一些例子分别说明这些节点的使用及音频和视频的播放。
MovieTexture为指定的几何面提供影像帖图,或为Sound 节点提供声音。其主要属性如下:
url -- 指定纹理文件的URL。假如指定了多个URL,则浏览器按排列的顺序装载第一个能找到的文件。电影纹理通常上MPEG1,文件扩展名为.mpg。
speed -- 指定电影纹理播放速度的乘数因子。值1表示以正常速度播放;值2表示以双倍的速度播放;负值表示倒放。默认值为1。
loop -- 指明电影是否循环播放。当loop=True时循环,当loop=False只运行一次。默认值为False。
startTime -- 指定电影开始播放的时间。默认值为0。
stopTime -- 指定电影停止播放的时间。默认值为0。
repeatS -- 指明在s水平方向重复纹理。True表明是重复,False表明将锁定纹理坐标。默认值为True。
repeatT -- 指明在t垂直方向重复纹理。True表明是重复,False表明将锁定纹理坐标。默认值为True。
说明:
(1) MovieTexture节点指定了一幅电影纹理图和控制播放及纹理映射的参数。纹理图是在水平轴(s)和垂直轴(t)均从0到1延展的二维图像。电影纹理是由Appearance节点的texture域或Sound节点的域(只作为一个声源)指定。
(2) 假如speed的值是正的,电影从0帧开始播放;假如speed的值是负的,则从最后一帧开始播放。假如speed为0,MovieTexture将总显示第0帧。当一个电影纹理变为非激活状态时,相应变化的那一刻的帧将保持为物体上的当前纹理。
(3) 若要同时播放音频和视频,最好先使用DEF定义一个纹理,然后使用USE作为Sound节点的源,这样可以节省内存。
二、 示例
示例1:
其中,winlogon.wav文件应和代码文件同在一个文件夹中。编译预览后可以听到播放的声音,而且是循环播放。
示例2:
结果如下所示:
需要说明的是:对于X3D的多媒体效果,BS插件做了很多优化,使得不需要Sound节点的支持也可以在立体的表面上进行影像播放,而且也有声音的输出。事实上,X3D更为出色的地方是动画和交互的支持。在下一讲中,我们将讨论X3D的动画效果。
新闻热点
疑难解答