您的位置:首页 > 编程语言 > Java开发

java中播放声音(一)

2007-06-02 22:26 302 查看
此代码可以打开AudioFormat 为PCM_SIGNED, 11025.0 Hz, 16 bit的wav后缀文件,大家可以参考以下代码

import javax.sound.sampled.*;
import java.io.File;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.IOException;

class SecondTest {
public static void loadSound() {
try {
String audiofile= "c://audio//system.wav";
// From file
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(
audiofile));

// From URL
// AudioInputStream stream = AudioSystem.getAudioInputStream(new URL(
// "http://192.168.254.102:8888/oaapp/1-welcome.wav"));

// 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) {
e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
} catch (LineUnavailableException e) {e.printStackTrace();
} catch (UnsupportedAudioFileException e) {e.printStackTrace();
}
}
public static void main(String args[]) {
loadSound();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: