import javax.sound.midi.*;
import javax.sound.sampled.*;
import java.io.*;
/**
*实现背景音乐的播放
*----循环20次的播放音乐
*实现声音的一次性播放
*
*Author:Shopping See
*Start Date:2007-11-3
*/
public class Sound {
File sound;
Sequence seq;
Sequencer midi;
public Sound(){
try {
sound=new File("res\\bgmusic.mid");
seq=MidiSystem.getSequence(sound);
midi=MidiSystem.getSequencer();
midi.open();
midi.setSequence(seq);
}
catch (Exception ex) {
}
}
public Sound(String fileName){
try {
sound=new File("res\\"+fileName);
seq=MidiSystem.getSequence(sound);
midi=MidiSystem.getSequencer();
midi.open();
midi.setSequence(seq);
}
catch (Exception ex) {
}
}
public void play(){
midi.start();
}
public void loop(){
midi.setLoopCount(20);
midi.start();
}
public void stop(){
midi.stop();
}
}
/*
public class Sound
{
InputStream in=null;
AudioStream as=null;
public Sound()
{
try
{
// Open an input stream from the audio file.
//
// 如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:
//AudioStream as = new AudioStream (url.openStream());
//
in = new FileInputStream("res\\bgmusic.mid");
// Create an AudioStream object from the input stream.
as = new AudioStream(in);
}catch(IOException e)
{
e.printStackTrace();
}
}
public Sound(String soundName)
{
try
{
in = new FileInputStream("res\\"+soundName);
as = new AudioStream(in);
}catch(IOException e)
{
e.printStackTrace();
}
}
public void play()
{
// Use the static class member "player" from class AudioPlayer to play clip.
AudioPlayer.player.start(as);
}
public void loop()
{
try
{
// Create AudioData source.
if(as!=null)
{
AudioData data = as.getData();
// Create ContinuousAudioDataStream.
ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);
// Play audio.
AudioPlayer.player.start(cas);
}
}catch(IOException e)
{
e.printStackTrace();
}
}
public void stop()
{
// Similarly, to stop the audio.
AudioPlayer.player.stop(as);
}
}
*/
- 1
- 2
前往页