|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,成绩Nokia的手机对声响播放撑持的仿佛不太好。
本文依据我做j2me的履历,总结一下Nokia三个机型的声响播放办法。
1。NokiaS40(7210,3300)和S60(3650,7650)
/*
这四款机子不撑持MIDP2.0的media。
我只针对我做过的机型申明,其他的机型没有效真机实验,
不晓得是不是撑持MIDP2.0中的media
*/
importcom.nokia.mid.sound.*;
publicclassMyClassextendsCanvas
{
……
privateSoundkSound=null;
privatebyte[]dataKill={
(byte)0x02,(byte)0x4a,(byte)0x3a,(byte)0x40,
(byte)0x04,(byte)0x00,(byte)0x0b,(byte)0x28,
(byte)0x83,(byte)0x28,(byte)0x28,(byte)0xd2,
(byte)0x28,(byte)0x00
};
privateFun()
{
if(kSound!=null)
{
kSound.stop();
kSound=null;
}
kSound=newSound(dataKill,Sound.FORMAT_TONE);
kSound.setGain(255);//设置音量
kSound.play(1);//播放,轮回一次
}
}//EndMyClass.
/*
注:
1。关于dataKill数据怎样失掉。
起首,要有一个midi声响文件;
其次,必要nokia的Nokia_Developers_Suite_for_J2ME。
用这个工具中的audioconverter把midi文件转换成字节数据。
然后把失掉的东东copy到你的代码中。
2。关于WTK怎样用nokia的lib。
在nokia的开辟工具目次
..NokiaDevicesNokia_7210_MIDP_SDK_v1_0lib大概
..NokiaDevicesSeries_60_MIDP_Concept_SDK_Beta_0_3_Nokia_editionlib
中找到class.zip。翻开,找到Sound.class,解压,应当能够失掉com
okiauiSoundsound.class,
然后把全部目次再打包成一个zip文件,放到你的项目标lib下。就好了。
大概间接一点,把class.zip间接方到lib下也能够。
用wtk编译打好package后,再翻开你的jar文件,把包括sound.class的谁人com文件夹
删除,最初再把jad中的jar-size依据实践情形改一下。
ok。
归正我就是这么做的,贫苦是很贫苦。可是其实是不想用JBuilder。
不晓得另有没有更复杂的举措。
*/
2。Nokia7610
/*此机型撑持MIDP2.0*/
importjavax.microedition.media.*;
publicclassMyClassextendsCanvas……
{
privatePlayerplayer=null;
……
privatevoidFun()
{
……
playSound("kill.mid");//此处挪用播放函数
/*关于WTK2.1,kill.mid文件放在res目次下*/
}
protectedvoidplaySound(Stringsource)
{
//创立播放器
try
{
if(player!=null)
{
player.close();
player=null;
}
player=Manager.createPlayer(getClass().getResourceAsStream("/"+source),"audio/midi");
player.addPlayerListener(this);
player.setLoopCount(1);
player.realize();
player.start();
}
catch(Exceptionpe)
{
pe.printStackTrace();
}
}
publicvoidplayerUpdate(finalPlayerp,finalStringevent,finalObjecteventData)
{
//queueacalltoupdateEventintheuserinterfaceeventqueue
Displaydisplay=Display.getDisplay(myColorBall);
display.callSerially(newRunnable(){
publicvoidrun()
{
updateEvent(p,event,eventData);
}
});
}
privatevoidupdateEvent(Playerp,Stringevent,ObjecteventData)
{
if(event==END_OF_MEDIA)
{
p.close();
}
elseif(event==CLOSED)
{
p=null;
}
}
}//EndMyClass.
===================================================
/*
谈别的一个成绩。
当切换出程序,游戏声响仍旧持续播放的办理举措。
*/
//MyClass里增添一个函数
voidstopTone()
{
if(kSound!=null)
{
kSound.stop();
}
}
//在MIDlet里的pauseApp()里增加以下代码
publicvoidpauseApp()
{
if(myClass!=null//播放声响的界面存在
&&sound_s==1)//声响开关翻开了
{
myClass.stopTone();
}
}
/*这还只是一个构思,过两天偶然间了再上真机实测*/
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 |
|