如何在Java小程序中添加音乐

如何在Java小程序中添加音乐,第1张

AudioClip audio1=getAudioClip(codebase,"danny.au")可以写在paint函数中,也可以写在别的函数中。Java applet除了可以播放.au的音乐文件还可以播放.wav的音乐文件,要播放mp3文件需要有JMF插件。

import java.applet.Applet

import java.applet.AudioClip

import java.awt.Graphics

import java.net.URL

public class PlaySound extends Applet

{

public void paint(Graphics g)

{

URL codebase=getCodeBase()

System.out.println(codebase)

AudioClip audio1=getAudioClip(codebase,"danny.au")

g.drawString("Play music",30,30)

audio1.loop()

}

}

JAVA应用程序添加背景音乐示例:

1.先定义一个 URL 对象,并赋NULL值;

URL   musicURL   =   null

2.然后为定义的 URL 赋值,即得到要播放的URL地址,

musicURL   =   new   URL( "音乐地址");//得到要播放音乐的url

3.创建一个播放音频的实例,并得到这个实例

AudioClip   ac   =   Applet.newAudioClip(musicURL)  //得到一个播放音频的实例      

4.进行播放控制

ac.play()  //播放一编

ac.loop()  //循环播放

ac.stop();//停止

播放本地音乐示例:

private void playMusic(){

       try {

           javax.media.Player player

           if(null==player){

               File musicFile=new File("./music.mp3")//得到一个MP3文件

               if(musicFile.exists()){

                   MediaLocator  locator=new MediaLocator("file:"+musicFile.getAbsolutePath())

                   player = Manager.createRealizedPlayer(locator)

                   player.prefetch()//预读文件

               }else{

                   System.err.println(pro.getMusicFile()+" 找不到")

               }

           }

           //centerpanel.add(player.getControlPanelComponent()!=null?player.getControlPanelComponent():null)//显示播放工具

           player.start()//播放

       } catch (CannotRealizeException ex) {

           ex.printStackTrace()

       } catch (NoPlayerException ex) {

           ex.printStackTrace()

       } catch (IOException ex) {

           ex.printStackTrace()

       }

   }

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()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11165817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存