我想使用javax.sound.sampled淡出开始无限循环的声音。这是我开始声音的方式:
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem
.getAudioInputStream(new File("x.wav"));
clip.open(inputStream);
clip.loop(clip.LOOP_CONTINUOUSLY);
谁能指出我该怎么做?我是否应该使用其他声音系统,例如FMOD(如果在Java中可行)?谢谢。
在这里看看:Openjava声音演示
他们使用FloatControl gainControl; // for volume
/**
* Set the volume to a value between 0 and 1.
*/
public void setVolume(double value) {
// value is between 0 and 1
value = (value<=0.0)? 0.0001 : ((value>1.0)? 1.0 : value);
try {
float dB = (float)(Math.log(value)/Math.log(10.0)*20.0);
gainControl.setValue(dB);
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* Fade the volume to a new value. To shift volume while sound is playing,
* ie. to simulate motion to or from an object, the volume has to change
* smoothly in a short period of time. Unfortunately this makes an annoying
* clicking noise, mostly noticeable in the browser. I reduce the click
* by fading the volume in small increments with delays in between. This
* means that you can't change the volume very quickly. The fade has to
* to take a second or two to prevent clicks.
*/
float currDB = 0F;
float targetDB = 0F;
float fadePerStep = .1F; // .1 works for applets, 1 is okay for apps
boolean fading = false;
public void shiftVolumeTo(double value) {
// value is between 0 and 1
value = (value<=0.0)? 0.0001 : ((value>1.0)? 1.0 : value);
targetDB = (float)(Math.log(value)/Math.log(10.0)*20.0);
if (!fading) {
Thread t = new Thread(this); // start a thread to fade volume
t.start(); // calls run() below
}
}
/**
* Run by thread, this will step the volume up or down to a target level.
* Applets need fadePerStep=.1 to minimize clicks.
* Apps can get away with fadePerStep=1.0 for a faster fade with no clicks.
*/
public void run()
{
fading = true; // prevent running twice on same sound
if (currDB > targetDB) {
while (currDB > targetDB) {
currDB -= fadePerStep;
gainControl.setValue(currDB);
try {Thread.sleep(10);} catch (Exception e) {}
}
}
else if (currDB < targetDB) {
while (currDB < targetDB) {
currDB += fadePerStep;
gainControl.setValue(currDB);
try {Thread.sleep(10);} catch (Exception e) {}
}
}
fading = false;
currDB = targetDB; // now sound is at this volume level
}
问题内容: 我创建了一个pong克隆,当发生碰撞时,我想添加一些声音效果。我的问题是,考虑到整个应用程序只有90行代码,我发现的每个有关合成声音的示例都需要约30行代码。我正在寻找一种更简单的方法。有没有简单的方法来创建不同音调的提示音?持续时间无所谓。我只想要一系列不同音调的蜂鸣声。 问题答案: 这是从Java Sound 提取(并简化)的一个小示例-示例:生成音频的代码
编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。 我想在我制作的帧中添加一个声音。我在google上搜索了一下,发现Java不支持mp3,所以我把磁盘中的一首歌转换成了wav文件。导入sun.audio.*后和java.io.*在我的项目中,我在框架构造函数中添加了这些行 但这不管用,我不确定是什么问题,我希望你们中有人能帮我解决。
我创建了一个< code >类来在我点击按钮时播放声音。 这是代码: 当我想将其实现到 方法中时,似乎没有播放任何声音。 下面是< code>ButtonListener代码: 代码有什么问题? 编辑: 基本上我正在尝试创建一个简单的记忆游戏,我想在点击按钮时添加声音。 解决了的: 我从Soundjay下载的音频文件似乎出现了问题,因此无法播放该音频文件@_@
问题内容: 我想让一个python程序通过发出哔哔声来提醒我。当前,我使用然后使用命令行语音程序说“处理完成”。我宁愿它只是一个简单的“钟”。 我知道有一个可以在 Cocoa 应用程序中使用的功能,但是我认为这与该功能没有任何关系。 我也尝试过 但这没用。 如果您无法从我的 可可粉 评论中得知,我正在使用Mac,这可能会有所帮助。 问题答案: 你有没有尝试过 : 在Mac OS 10.5上适合我
在Microsoft Windows中,声音、音乐与视讯的综合运用是一个重要的进步。对多媒体的支持起源于1991年所谓的Microsoft Windows多媒体延伸功能(Multimedia Extensions to Microsoft Windows)。1992年,Windows 3.1的发布使得对多媒体的支持成为另一类API。最近几年,CD-ROM驱动器和声卡-在90年代初期还很少见-已成为
The Audio Listener acts as a microphone-like device. It receives input from any given Audio Source in the scene and plays sounds through the computer speakers. For most applications it makes the most