Java怎么实现音乐播放

Python012

Java怎么实现音乐播放,第1张

java swt实现播放音乐代码如下:

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格式的歌曲