需要一点java中的音频播放器

时间:2013-08-10 02:26:59

标签: java javasound

我正在用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>

1 个答案:

答案 0 :(得分:3)

首先,如果你想播放没有循环且持续时间超过几秒的声音,你不应该使用剪辑。

您将需要使用SourceDataLines,它可以通过流读取多种不同格式的音频数据(请参阅AudioFileFormat.Type以获取详细信息)。

关于你的问题:

  1. 混音器,行和端口都用于在声音数据离开或进入java程序时对其进行修改。这可能意味着改变音高,声音,振幅等。

  2. 为了将MP3解码添加到您的程序中,您将不得不使用外部库。一个例子是Java Media Framework(JMF)。

  3. 如果要添加音量控制,可以使用FloatControl.Type.VOLUME。 SourceDataLines与它们兼容。

  4. 要使用滑块控制音量,只需从滑块获取一个整数值并将其传递给FloatControl.Type.VOLUME。这可能需要一点点,因为FloatControl.Types通常具有精确的边界和乘数。至于搜索栏,您可能会在JMF中找到答案。但不保证。