程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> X3D實戰基礎講座之九

X3D實戰基礎講座之九

編輯:關於JAVA

X3D對多媒體的支持是通過這三個節點來實現的:AudioClip(音頻數據節點)、Sound(音頻播放節點)以及MovieTexture(影像紋理節點)。

在本講中,我們先來簡單地介紹這三個節點的屬性,然後舉一些例子分別說明這些節點的使用及音頻和視頻的播放。

一、音頻和視頻節點

1、AudioClip(音頻數據)節點

AudioClip 一般作為Sound的子節點,分其提供音頻數據,其主要屬性有:

description -- 此節點顯示的提示文本。

url -- 聲音文件的位置。該文件通常是 .wav 格式或 .midi 格式,其它格式不一定支持。

loop -- 是否循環播放。當loop=True時循環,當loop=False只運行一次。默認值為False。

pitch -- 加快或減慢播放聲音的相乘因子(例如:2.0意味著以兩倍的速度播放),只有正值是有效的。默認值為1。

startTime -- 聲音開始播放的時間(秒數)。默認值為0。

stopTime -- 結束播放聲音的時間(秒數)。默認值為0。

需要說明的是:如果loop設為True,聲音一直循環播放直到stopTime停止;如果loop設為False,聲音一次播放到文件末尾或者達到stopTime。

2、Sound(音頻播放)節點

Sound 節點用於聲音的回放,其主要屬性有:

intensity -- 聲源的強度,0為最小值,1為最大值。在有些浏覽器中最大值可以超過1。默認值為1。

priority -- 指出聲音的優先級。若為背景音樂,則設為0。

location -- 聲源的坐標。默認值為[0 0 0]。

direction -- 指定橢球的長軸方向。默認值為[0 0 1]。

minFront -- 聲源坐標點至內橢圓球前部端點的距離。默認值為1。

maxFront -- 聲源坐標點至外橢圓球前部端點的距離。默認值為10。

minBack -- 聲源坐標點至內橢圓球後部端點的距離。默認值為1。

maxBack -- 聲源坐標點至外橢圓球後部端點的距離。默認值為10。

spatialize -- 指出聲音是作為空間點播放(True),還是作為環境聲播放(False)。默認值為True。

上述屬性中所涉及到的位置關系可以用下圖來表示。

3、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的動畫效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved