Java怎么实现音乐播放

Python011

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("有错误!")

}

}

Java中可以通过AudioClip类来实现音乐播放,循环等操作。AudioClip支持的音乐格式有.wav、.mid、AIFF、AU、RMF,但是格式要求相当严格。我用AudioClip播放我自己录的一段wav文件就没有声音,让我纠结了很久,最后才发现我的wav文件内容没有写文件尾,对于格式要求严格的AudioClip而言是无法识别的(这个问题困扰了我整晚)。

AudioCLip主要的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。

做法一:

InputStream is =null

AudioStream as = null

is = getClass().getResourceAsStream("a.wav")

try {

as = new AudioStream(is)

} catch (IOException e) {}

AudioPlayer.player.start(as)

此方法将音乐文件放入流中在播放,仅限于Java Application,容易报错,空指针异常,或者是流异常,不推荐。

做法二:

String music = "a.wav"

AudioClip clip = Applet.newAudioClip(getClass().getResource(music))

次方法在Applet中运行没有问题,但是Application中getclass()会返回空指针,导致失败。

推荐做法

private URL url

private AudioClip ac

File f1 = new File("C:/3.wav")

try {

url= f1.toURL()

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

ac= Applet.newAudioClip(cb1)

ac.play()