如何使用Java增加传出wav音频流的音量?我遇到了各种Java TTS引擎以及合成语音的输出音量问题。是否有API调用或我可以用来增加音量的doo-hickey.jar?Java中的音量控制(增加或减少)
19
A
回答
34
后,可以设置与MASTER_GAIN控制音量。
import javax.sound.sampled.*;
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(
new File("some_file.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
FloatControl gainControl =
(FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(-10.0f); // Reduce volume by 10 decibels.
clip.start();
9
可以调整使用增益控制量,尝试这样的事情你如果你使用的是Java API的声音开行
FloatControl volume= (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
1
public final class VolumeControl
{
private VolumeControl(){}
private static LinkedList<Line> speakers = new LinkedList<Line>();
private final static void findSpeakers()
{
Mixer.Info[] mixers = AudioSystem.getMixerInfo();
for (Mixer.Info mixerInfo : mixers)
{
if(!mixerInfo.getName().equals("Java Sound Audio Engine")) continue;
Mixer mixer = AudioSystem.getMixer(mixerInfo);
Line.Info[] lines = mixer.getSourceLineInfo();
for (Line.Info info : lines)
{
try
{
Line line = mixer.getLine(info);
speakers.add(line);
}
catch (LineUnavailableException e) { e.printStackTrace(); }
catch (IllegalArgumentException iaEx) { }
}
}
}
static
{
findSpeakers();
}
public static void setVolume(float level)
{
System.out.println("setting volume to "+level);
for(Line line : speakers)
{
try
{
line.open();
FloatControl control = (FloatControl)line.getControl(FloatControl.Type.MASTER_GAIN);
control.setValue(limit(control,level));
}
catch (LineUnavailableException e) { continue; }
catch(java.lang.IllegalArgumentException e) { continue; }
}
}
private static float limit(FloatControl control,float level)
{ return Math.min(control.getMaximum(), Math.max(control.getMinimum(), level)); }
}
相关问题
- 1. MPMusicPlayerController音量增加和减少动态
- 2. iPhone音量间歇性地/突然地增加或减少
- 3. 在C++中增加和减少增量控件的值WINAPI
- 4. 减少和增加浮动增量android
- 5. 在Java中的return语句中减少(或增加)运算符
- 6. 如何增加或减少Java中矩阵的大小?
- 7. 如何在cocos2dx中使用音量增大和减小控制
- 8. 增加或减少网站尺寸
- 9. Zend +/-按钮来增加或减少值
- 10. 增加/减少大量整数
- 11. 试图增加/减少变量
- 12. 如果数量在magento中增加或减少,警报或命令或通知?
- 13. 减少背景音乐的音量
- 14. 如何在java中录制声音时减少噪音?
- 15. ValueError:索引必须单调增加或减少:增加毫秒
- 16. 如何从变量增加或减少,直到得到字符
- 17. 检查,如果数量正在减少或增加
- 18. C#减少或增加变量(如点购买系统)?
- 19. 如果变量增加或减少,我该如何检查?
- 20. WP7 SoundEffect音量减少
- 21. 拖动增加/减少值
- 22. C - 优先增加/减少?
- 23. c#Trackbar增加/减少
- 24. 根据条件从运行总量中增加或减少一个变量
- 25. 处理中的音量控制(java)?
- 26. 如何动态增加或减少在Mac视图控制器的分割视图的数量
- 27. 我怎样才能打开手机音量增加或减少,甚至静音与原生
- 28. 如何在asp.net中增加或减少btn点击的大小?
- 29. 如何在asp.net中增加或减少btn点击的大小?
- 30. Android减少或增加Spinner中的选择位置
Thanx!我会试试这个。对于我在两端看问题的价值。我有一个iPhone客户端摄取音频流,只是通过在客户端上使用不同的API,我获得了不同的音量。所以我不认为我的问题完全是服务器端。 – Cliff 2009-06-05 13:48:33
@ markusk如果问题是特定于音量的,应该使用“FloatControl.Type.VOLUME”? – 2011-08-02 17:39:47