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

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
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

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

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


可惜不是你,陪我到最后
2007-03-16 08:56
winsun
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-3-4
收藏
得分:0 
想问一版主一个问题,java的音频播放可以播.mp3的格式吗?如果不可以那怎么办呢?
2007-03-16 12:28
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
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用winsun在2007-3-16 12:28:57的发言:
想问一版主一个问题,java的音频播放可以播.mp3的格式吗?如果不可以那怎么办呢?

标准的JDK是不能播MP3格式的,你可以下载java media framework(JMF),也叫JAVA媒体框架,然后再下载一个MP3的插件,就可以播放MP3了


可惜不是你,陪我到最后
2007-03-16 13:50
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用zhanglinkai在2007-3-16 12:56:33的发言:

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

不会的,怎么会那样呢?

你用我的方法得到了URL之后,就可以利用Applet.newAudioClip(url);
来得到AudioClip的引用,得到了以后,你就可以播放和停止了,

播放第二个不会出现异常的,你那边是什么异常呢?
还有,你的代码也帖上来看看,


可惜不是你,陪我到最后
2007-03-16 13:51
sea7
Rank: 2
等 级:新手上路
威 望:3
帖 子:291
专家分:0
注 册:2007-2-17
收藏
得分:0 
把代码贴上来啊

软件是一种修养
2007-03-16 23:42
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
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
这可能就和你的电脑有关了,我这里同样的代码是完全可以运行的,并且可以两个音乐同时播放

我记得有些声卡是不支持 同时播放音乐的

可惜不是你,陪我到最后
2007-03-18 10:00
快速回复:求教加载音乐问题
数据加载中...
 
   



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

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