| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1109 人关注过本帖
标题:求教加载音乐问题
取消只看楼主 加入收藏
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
 问题点数:0 回复次数:4 
求教加载音乐问题

import javax.swing.*;
import java.applet.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class LoadAudioAndPlay extends JApplet{
AudioClip sound1,sound2,currentsound;
JButton playsound,loopsound,stopsound;
JComboBox choosesound;
URL url1,url2;
String name[]={"Welcome","hi"};
public void init(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
choosesound=new JComboBox(name);
try{
url1=new URL("file:/e:/program/16/"); /*请大家指点一下这里应该怎么做才能得到音乐文件*/
url2=new URL("file:/e:/program/16/y.wav");
sound1=getAudioClip(url1,"w.wav");
sound2=getAudioClip(url2);

}catch(Exception e){}

currentsound=sound1;
//currentsound.play();

choosesound.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
currentsound.stop();
currentsound=choosesound.getSelectedIndex()==0 ?
sound1 : sound2;
}
});
c.add(choosesound);
playsound=new JButton("Paly");
c.add(playsound);
loopsound=new JButton("Loop");
c.add(loopsound);
stopsound=new JButton("Stop");
c.add(stopsound);
ButtonActionHandler handler=new ButtonActionHandler();
playsound.addActionListener(handler);
loopsound.addActionListener(handler);
stopsound.addActionListener(handler);

}
private class ButtonActionHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==playsound)
currentsound.play();
if(e.getSource()==loopsound)
currentsound.loop();
if(e.getSource()==stopsound)
currentsound.stop();
}
}
public static void main(String[] args){
LoadAudioAndPlay m=new LoadAudioAndPlay();
JFrame app=new JFrame("AudioAndPlay Test");
m.init();
m.start();
app.getContentPane().add(m);
app.setBounds(100,100,400,100);
app.setVisible(true);
}
}
我用过Applet.newAudioClip(URL)但是只能得到一个音乐文件 我要同时用几个这样的语句时 只有第一个音乐能打开 请大家指点一下错误。 谢谢!万分感激!!!

搜索更多相关主题的帖子: 加载 import 音乐 java awt 
2007-03-15 22:41
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
以下是引用千里冰封在2007-3-16 8:56:28的发言:

有一个很好的方法,你不必要得到它的绝对路径,你只要把你的音频文件放到你的类目录里面去,然后用
getClass().getResource("xx.wav")的方法得到xx.wav的URL,然后就可以用这个URL去构造一个AudioClip了

并且这个好处就是,你的音频文件可以随便着类文件到处走了

斑竹您说的我有点没明白我想问的问题是getAudioClip()在这里怎么得不到音乐资源,还有我用过Applet.newAudioClip()这个静态方法得到资源,但是如果我要得到两首音乐的资源,第二首怎么也得不到
如Applet.newAudioClip(url1);Applet.newAudioClip(url2);在播放第二个的时候就回出现异常,请大家辛苦一下,指点一下,后告诉我个别的方法。谢谢!!!万分感激!!!


希望自己能走的更远!!!
2007-03-16 12:56
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 

[CODE]import javax.swing.*;
import java.applet.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class LoadAudioAndPlay extends JApplet{
AudioClip sound1,sound2,currentsound;
JButton playsound,loopsound,stopsound;
JComboBox choosesound;
URL url1,url2;
String name[]={"Welcome","hi"};
public void init(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
choosesound=new JComboBox(name);
try{
/*这里只能播放sound2,播放sound1什么都不会发生如果把sound1=Applet.newAudioClip()防在上面
sound1旧能播放 就是不能同时播放*/

sound2=Applet.newAudioClip(getClass().getResource("y.wav"));
sound1=Applet.newAudioClip(getClass().getResource("w.wav"));
}catch(Exception e){}
currentsound=sound1;
sound2.play();//这个能播放如果变成sound1.play()就不行,把上面的顺序换以下就能播放sound1
//sound2就不行了
choosesound.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
currentsound.stop();
currentsound=choosesound.getSelectedIndex()==0 ?
sound1 : sound2;
}
});
c.add(choosesound);
playsound=new JButton("Paly");
c.add(playsound);
loopsound=new JButton("Loop");
c.add(loopsound);
stopsound=new JButton("Stop");
c.add(stopsound);
ButtonActionHandler handler=new ButtonActionHandler();
playsound.addActionListener(handler);
loopsound.addActionListener(handler);
stopsound.addActionListener(handler);
}
private class ButtonActionHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==playsound)
currentsound.play();
if(e.getSource()==loopsound)
currentsound.loop();
if(e.getSource()==stopsound)
currentsound.stop();
}
}
public static void main(String[] args){
LoadAudioAndPlay m=new LoadAudioAndPlay();
JFrame app=new JFrame("AudioAndPlay Test");
m.init();
m.start();
app.getContentPane().add(m);
app.setBounds(100,100,400,100);
app.setVisible(true);
}
}[/CODE]
对不起 昨天说错了 没有异常 是什么都不发生 就是不能播放两个音乐文件 谁在上面就能播放谁,下面的就不能放 而且没任何反映,由于上网不是很方便 现在才贴出来 希望斑竹和大家帮帮我 谢谢大家! 感谢斑竹的回答!

[此贴子已经被作者于2007-3-17 14:08:06编辑过]


希望自己能走的更远!!!
2007-03-17 14:04
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
大家怎么不理我了,求大家帮忙看看,试验一下看我哪错了,帮帮我这只菜鸟,我很着急啊,找不到错误。

希望自己能走的更远!!!
2007-03-18 08:17
zhanglinkai
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-11-25
收藏
得分:0 
不会这么残吧!! 谢谢斑竹指教!!

希望自己能走的更远!!!
2007-03-18 12:05
快速回复:求教加载音乐问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025950 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved