郁闷了一整天的怪问题 有人能解答吗 播放声音
package as;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
//import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import java.io.*;
public class play extends MIDlet {
public static Player mc=null;
public play() {
// TODO Auto-generated constructor stub
try
{
InputStream ins=this.getClass().getResourceAsStream( "/bb.wav ");
mc=Manager.createPlayer(ins, "audio/x-wav ");
}
catch(
IOException e)
{}
catch(MediaException e)
{}
catch(Exception e)
{}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
if(mc!=null)
{
try
{
mc.start();
System.out.println( "start.... ");
}
catch(MediaException e )
{
System.out.println(e);
}
}
else
{
System.out.println( "null...... ");
}
}
}
------解决方案--------------------问题到底是什么?
连描述都没有,上帝也解决不了
------解决方案--------------------上面程序bb.wav 可以播放出来
但是放在同样目录下的bbq.wav 就不能播放了 source not found
为什么?
===========================================
先确定bbq.wav的资源是可用的,如果已经可以打到包中的话,就看路径对不对,基本就是这两种情况了
把bb.wav 放res文件夹下 应该改成( "/res/bb.wav ")或者( "./res/bb.wav ")对吗?
=============================================
看具体情况,如果你的根目录指向res所在的目录,就应该是/res/bb.wav,如果根目录指向了res目录,就应该是/bb.wav
------解决方案--------------------看什么机子了,wav位速要> =64Kbps,这样就都能播了,看看两个wav位速是不是不一样
------解决方案--------------------bb.wav 未必只有一份,可能能够打开的那份不在你以为的这个目录中。
搜索一下bb.wav,看有几份,都在什么位置,如果有其它位置,则把bbq.wav拷到那里,就完事了。
------解决方案--------------------bb.wav 可以播放;
copy bb.wav to bbq.wav 不可以播放;相同目录;
lz是不是想同时播放2个声音啊,很多机器不行的,包括N70,但是SecK系列的手机可以;
------解决方案--------------------既然出错的原因是source not found,那么就看看资源文件是否在jar中了,或者是加载文件的地方路径没有写对,不可能是还有其他原因了。