聲音特效是通常不超過幾秒鐘的特定游戲事件(如跳轉(zhuǎn)或射擊槍)的短音頻(一般在10秒以內(nèi))跨细。
聲音特效可以以各種格式存儲。 Libgdx支持MP3河质,OGG和WAV文件冀惭。 RoboVM(iOS)目前不支持OGG文件震叙。
在Android上,Sound實(shí)例的大小不能超過1mb散休。 如果您有更大的文件媒楼,請使用Music
Sound 接口可以代表一個(gè)聲音特效實(shí)例,加載聲音特效的代碼如下:
Sound sound = Gdx.audio.newSound(Gdx.files.internal("data/mysound.mp3"));
這將從內(nèi)部目錄數(shù)據(jù)加載一個(gè)名為“mysound.mp3”的音頻文件戚丸。
一旦我們成功加載音頻數(shù)據(jù)划址,我們可以使用以下的代碼播放聲音特效:
sound.play(1.0f);//滿音量播放一次音效,可多次調(diào)用
我們也可以對Sound進(jìn)行更細(xì)粒度的控制,每次對Sound.play()的調(diào)用都會(huì)返回一個(gè)long標(biāo)識限府,它標(biāo)識該聲音實(shí)例夺颤。 使用這個(gè)句柄我們可以修改這個(gè)特定的播放實(shí)例:
//播放新的聲音并保持處理以進(jìn)一步操縱
long id = sound.play(1.0f); // play new sound and keep handle for further manipulation
//立即停止聲音實(shí)例
sound.stop(id); // stops the sound instance immediately
//將音高增加到原來音高的2倍
sound.setPitch(id, 2); // increases the pitch to 2x the original pitch
//第二次播放聲音,這被視為不同的實(shí)例
id = sound.play(1.0f); // plays the sound a second time, this is treated as a different instance
//將全部音量設(shè)置在左側(cè)
sound.setPan(id, -1, 1); // sets the pan of the sound to the left side at full volume
//保持聲音循環(huán)
sound.setLooping(id, true); // keeps the sound looping
//停止循環(huán)聲音
sound.stop(id); // stops the looping sound
請注意胁勺,這些方法現(xiàn)在在JavaScript / WebGL后端功能存在限制世澜,從1.9.6開始,setPan()只有在支持和啟用Flash時(shí)才能工作GwtApplicationConfiguration.preferFlash = true
一旦你不再需要聲音署穗,請釋放它:
sound.dispose();
請注意寥裂,當(dāng)你釋放掉聲音之后仍調(diào)用聲音實(shí)例會(huì)出現(xiàn)未定義的錯(cuò)誤.