我现在在html中嵌入了一个java小程序,在普通pc中能正常调用这个java小程序,当你更改java小程序时,显示 5

我现在在html中嵌入了一个java小程序,在普通pc中能正常调用这个java小程序,当你更改java小程序时,显示也相应更改;当我把他们移植到linux嵌入式开发板中,... 我现在在html中嵌入了一个java小程序,在普通pc中能正常调用这个java小程序,当你更改java小程序时,显示也相应更改;当我把他们移植到linux嵌入式开发板中,在浏览器中输入ip地址,能出来此页面,但是无论你怎么更改java小程序的内容,页面还是显示第一次显示的内容! 展开
 我来答
kfjchvq
2011-06-19 · TA获得超过1964个赞
知道小有建树答主
回答量:1586
采纳率:0%
帮助的人:773万
展开全部
放音乐的api网上查有很多,比如javax.sound.midi.*;
支持midi,mid背景音乐的播放
public class Music implements MetaEventListener, Runnable{
private Sequence sequence = null;
private Sequencer sequencer;
private boolean isPlaying = false;
private volatile Thread thread;

public Music(){

}
public Music(String midifile){
try {
loadMidi(midifile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidMidiDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

//导入midi文件到内存中传给Sequence对象,相当与编码器
public void loadMidi(String filename) throws IOException, InvalidMidiDataException{

sequence = MidiSystem.getSequence(this.getClass().getResourceAsStream(filename));
}
//播放方法
public void play(){
if(isPlaying){
return;
}

try {
sequencer = MidiSystem.getSequencer();
sequencer.open();
//用Sequencer对象把声音文件序列解码出来播放

sequencer.setSequence(sequence);
sequencer.addMetaEventListener(this);
//设置循环次数,-1表示一直循环
sequencer.setLoopCount(-1);
sequencer.setLoopStartPoint(0);
sequencer.setLoopEndPoint(sequencer.getTickLength());
} catch (MidiUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidMidiDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(thread == null){
thread = new Thread(this);
thread.start();
}

}

public void stop(){
if(isPlaying){
sequencer.stop();
isPlaying = false;
}
if(thread != null){
thread = null;
}
}

public void meta(MetaMessage meta) {
if(meta.getType() == 47){
System.out.println("Sequencer is done playing");
}
// TODO Auto-generated method stub

}

public void run() {
// TODO Auto-generated method stub
Thread current = Thread.currentThread();
while(current == thread && !isPlaying){
sequencer.start();
isPlaying = true;
try {
thread.sleep(1001);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
//用起来也很方便
public static void main(String[] args){
Music music = new Music("a.mid");
music.play();
}
}

如果这样写路径类要和音频文件放在一个目录下,如果你不想这样,有两种方法,一种是修改路径字符串,另一种是把Class.getResourceAsStream方法改成new FileInputStream 这两个方法加载资源的初始路径不同,前者找class文件所在目录,后者找project目录
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哀依萱67
2011-06-17
知道答主
回答量:11
采纳率:0%
帮助的人:4.6万
展开全部
我感觉应该是浏览器的问题,Windows和linux的浏览器不一样,现实的效果也不一样,linux的火狐浏览器跟Windows的IE浏览器有很大的区别,IE跟好多浏览器都不兼容。万恶的IE……
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xingyuen6167
2011-06-16
知道答主
回答量:54
采纳率:0%
帮助的人:19.8万
展开全部
你确定你的linux嵌入式开发板的系统里面,有你所用的java翻译模块吗(这是软件),更新一下linux里的java数据库。
追问
应该不需要java翻译模块,因为我是在html网页中嵌入了一个java小程序,当在window下访问嵌入式开发板时,windows浏览器自动会把嵌入式开发板里存储的java小程序下载到window页面中,只要window下有java运行的环境就可以!现在的问题:当我把他们移植到linux嵌入式开发板中,在window浏览器中输入嵌入式开发板ip地址,能出来此页面,但是无论你怎么更改java小程序的内容,页面还是显示第一次显示的内容!qq 314925753,加我!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FeGod
2011-06-16 · 超过12用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:31.5万
展开全部
这种情况下应该重新发布/部署之后才能跟中间件同步吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式