public void play(String Filename)
{
try{
// 用输入流打开一音频文件
InputStream in = new FileInputStream(Filename)//FIlename 是你加载的声音文件如(“game.wav”)
// 从输入流中创建一个AudioStream对象
AudioStream as = new AudioStream(in)
AudioPlayer.player.start(as)//用静态成员player.start播放音乐
//AudioPlayer.player.stop(as)//关闭音乐播放
//如果要实现循环播放,则用下面的三句取代上面的“AudioPlayer.player.start(as)”这句
/*AudioData data = as.getData()
ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data)
AudioPlayer.player.start(gg)// Play audio.
*/
//如果要用一个 URL 做为声音流的源(source),则用下面的代码所示替换输入流来创建声音流:
/*AudioStream as = new AudioStream (url.openStream())
*/
} catch(FileNotFoundException e){
System.out.print("FileNotFoundException ")
} catch(IOException e){
System.out.print("有错误!")
}
}
使用play()方法进行播放,loop()方法循环播放,stop()方法停止播放。实际例子:
File file1 = new File("src\\music\\11.wav")
AudioClip sound1
sound1 = Applet.newAudioClip(file1.toURL())
sound1.play()
这样就实现了播放音乐的功能,注意J2SE默认只支持 wav格式的音频。
java中打开音乐播放器的方式是使用audioclip类来播放音乐,实例如下:
import java.applet.*import java.awt.*
import java.awt.event.*
import java.net.*
import javax.swing.*
import java.io.File
class AudioPlayDemo extends JFrame implements ActionListener {
boolean looping = false
File file1 = new File("music\\明天会更好.wav")
AudioClip sound1
AudioClip chosenClip
JButton playButton = new JButton("播放")
JButton loopButton = new JButton("循环播放")
JButton stopButton = new JButton("停止")
JLabel status = new JLabel("选择播放文件")
JPanel controlPanel = new JPanel()
Container container = getContentPane()
public AudioPlayDemo() {
try {
sound1 = Applet.newAudioClip(file1.toURL())
chosenClip = sound1
} catch(OutOfMemoryError e){
System.out.println("内存溢出")
e.printStackTrace()
} catch(Exception e){
e.printStackTrace()
}
playButton.addActionListener(this)
loopButton.addActionListener(this)
stopButton.addActionListener(this)
stopButton.setEnabled(false)
controlPanel.add(playButton)
controlPanel.add(loopButton)
controlPanel.add(stopButton)
container.add(controlPanel, BorderLayout.CENTER)
container.add(status, BorderLayout.SOUTH)
setSize(300, 130)
setVisible(true)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) //关闭窗口时退出程序
}
public void actionPerformed(ActionEvent event) {
if (chosenClip == null) {
status.setText("声音未载入")
return
}
Object source = event.getSource() //获取用户洗涤激活的按钮
if (source == playButton) {
stopButton.setEnabled(true)
loopButton.setEnabled(true)
chosenClip.play()
status.setText("正在播放")
}
if (source == loopButton) {
looping = true
chosenClip.loop()
loopButton.setEnabled(false)
stopButton.setEnabled(true)
status.setText("正在循环播放")
}
if (source == stopButton) {
if (looping) {
looping = false
chosenClip.stop()
loopButton.setEnabled(true)
} else {
chosenClip.stop()
}
stopButton.setEnabled(false)
status.setText("停止播放")
}
}
public static void main(String s[]) {
new AudioPlayDemo()
}
}
只能播放wav格式的歌曲