请问一下怎么样用JAVA播放声音呢

A39033261 2005-11-04 10:36:59
比如要播放硬盘上一个A.WAV文件
...全文
1572 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb8254 2006-06-21
  • 打赏
  • 举报
回复
d
cozmic 2005-11-05
  • 打赏
  • 举报
回复
API 中, AudioClip等
其实和读文件是一样的结构, 建立输入流-读入;
soltex 2005-11-05
  • 打赏
  • 举报
回复
楼猪。。以下是个转载:

java 声音技术浅析

java 的魅力之一就是对多媒体的支持,Appley使得原来沉闷的网页变得

丰富起来,在java.applet中提供了很多功能强大的方法对多媒体的支

持。现在我们就java中的声音技术来分析其中的功能。


一 在Applet中播放声音
播放声音是java对多媒体的支持一个重要部分.现今流行的声音格式

有wav,mid,au为扩展名的声音文件。而java现主要支持以au为名的声音

。在Applet中专门提供了类AudioClip来对声音的支持。
由于Applet的多媒体功能书上都有很清晰的介绍也很简单。我们就以一

个例子来结束这部分的说明。
import java.applet.*;

public class sounda extends Applet
{

public static void main (String[] args)
{
AudioClip ac = getAudioClip(getCodeBase(), "sloop.au");
ac.play();
// ac.loop();
// ac.stop();

}
}
上面例子只是很简单的说明,AudioClip是java中播放类。java中提供

了两个很有用的方法getCodeBase(),getDocumentBase()他们分别返回

Applet本身和包含此Applet主页的URL地址.上面的sloop.au即我机器上

的声音文件。我们在此直接使用了AudioClip的play方法来播放声音。

大家可测试用Applet的图像功能加入按钮。

二 java应用程序中的声音播放
由于在应用程序并不支持AudioClip类。所以播放声音文件成了一大

难题。制做自己的java播放器或应用媒体方面的java应用程序我们就不
能支持声音了吗?不是的,sun公司为应用程序中的声音支持另提供了

一个java新包。sun.audio在这个包下面提供了大部分所需要的声音处

理类。注:sun包下面还有很多很有意思的技术支持,如java2D,Tools

等,大家可自己尝试去使用。
下面我们就来做个自己的声音播放测试
import sun.audio.*;
import java.io.*;

public class Sound
{
public static voie main(String args[])
{
try {
FileInputStream fileau=new

FileInputStream("sloop.au");
AudioStream as=new AudioStream(fileau);
AudioPlayer.player.start(as);
}
catch (Exception e) {}
}
}

注:上面两例都没有提供相应的stop方法,本文章指在方法的尝试,并

非全面文章,但上面的例子都是可用的。

三 javaX中Sound包的应用
当我在进行上面的测试过程中,我发现javaX目录下也提供了一

个sound包对java声音的强大支持,并且在sun网站的jjse上可下载到相

关的大量例子程序.有志于声音处理方向的朋友可下载试试
yojir 2005-11-05
  • 打赏
  • 举报
回复
我要学
顶一下!!
Net_Soul 2005-11-05
  • 打赏
  • 举报
回复
Supported audio file formats: aif, au, and wav.

try {
// From file
AudioInputStream stream = AudioSystem.getAudioInputStream(new File("audiofile"));

// From URL
stream = AudioSystem.getAudioInputStream(new URL("http://hostname/audiofile"));

// At present, ALAW and ULAW encodings must be converted
// to PCM_SIGNED before it can be played
AudioFormat format = stream.getFormat();
if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) {
format = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
format.getSampleSizeInBits()*2,
format.getChannels(),
format.getFrameSize()*2,
format.getFrameRate(),
true); // big endian
stream = AudioSystem.getAudioInputStream(format, stream);
}

// Create the clip
DataLine.Info info = new DataLine.Info(
Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize()));
Clip clip = (Clip) AudioSystem.getLine(info);

// This method does not return until the audio file is completely loaded
clip.open(stream);

// Start playing
clip.start();
} catch (MalformedURLException e) {
} catch (IOException e) {
} catch (LineUnavailableException e) {
} catch (UnsupportedAudioFileException e) {
}

A39033261 2005-11-04
  • 打赏
  • 举报
回复
jmf是什么东西啊?全称是?
prok 2005-11-04
  • 打赏
  • 举报
回复
查一下api.你可以 用jmf实现

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧