我正在用java创建一个音频播放器,一个运行.wav文件的小代码片段是:
AudioInputStream ais = AudioSystem.getAudioInputStream(new File("C:\\path\\c4.wav").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.start();
我想了解一些关于java声音的事情
首先,java声音中混音器,线路,端口的用途是什么。
其次,如何包含其他格式,如mp2,mp3 ...还是有一种通用方法可以包含任何格式。
第三,如何添加音量控制。
第四,我在Net Beans制作这款播放器,以便如何使用滑块进行音量控制和搜索栏。
...我想使用基本的java声音api制作音频播放器,我正在阅读http://docs.oracle.com/javase/tutorial/sound/TOC.html的教程,所以请不要提供包含javafx或其他媒体文件的解决方案... < / p>
答案 0 :(得分:3)
首先,如果你想播放没有循环且持续时间超过几秒的声音,你不应该使用剪辑。
您将需要使用SourceDataLines,它可以通过流读取多种不同格式的音频数据(请参阅AudioFileFormat.Type以获取详细信息)。
关于你的问题:
混音器,行和端口都用于在声音数据离开或进入java程序时对其进行修改。这可能意味着改变音高,声音,振幅等。
为了将MP3解码添加到您的程序中,您将不得不使用外部库。一个例子是Java Media Framework(JMF)。
如果要添加音量控制,可以使用FloatControl.Type.VOLUME。 SourceDataLines与它们兼容。
要使用滑块控制音量,只需从滑块获取一个整数值并将其传递给FloatControl.Type.VOLUME。这可能需要一点点,因为FloatControl.Types通常具有精确的边界和乘数。至于搜索栏,您可能会在JMF中找到答案。但不保证。