让变化成为计划的一部分

欢迎大家探讨本Blog涉及的所有软件课题。我的Google Talk ID:zhengyun(at)gmail.com。

我最希望软件带给用户的感受是:美好的体验、舒适感、简约、干净...

posts - 32, comments - 8, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: [JavaME]手机同时播放两个音乐 探讨二 摘要: 本文档以及后续文档试图一步一步地探讨如何在手机上同时播放两个声音文件,譬如一个是背景音乐,一个是按键触发的游戏音效。请慢慢看下去,我们尽量糅合进各方汇集的一些经验。 1探讨适合Nokia的同步播放方法 摘要:本章 简单描述如何在NokiaS60系列手机同时播放两个音乐。   1.1. 使用nokia的专有类Sound ...  阅读全文

posted @ 2005-11-23 13:50 让变化成为计划的一部分 阅读(566) | 评论 (0)编辑 收藏


Table of contents
[hide]

posted @ 2005-11-23 10:25 让变化成为计划的一部分 阅读(567) | 评论 (0)编辑 收藏

     摘要: [JavaME]手机同时播放两个音乐 探讨一 摘要: 本文档以及后续文档试图一步一步地探讨如何在手机上同时播放两个声音文件,譬如一个是背景音乐,一个是按键触发的游戏音效。请慢慢看下去,我们尽量糅合进各方汇集的一些经验。 1背景 摘要:本章 简单描述手机同时播放两个音乐的背景。   1.1. 常见于各大J2ME论坛的这个问题 最近看到,不断地有人再询问同一类型的问题: ...  阅读全文

posted @ 2005-11-22 23:50 让变化成为计划的一部分 阅读(1084) | 评论 (1)编辑 收藏

摩托罗拉V300-V500-V600同时播放音乐的讲究

唯一支持的同步播放音乐的办法是,midi和wav声音混合播放。
即使是这样,也存在着一个限制:
应用程序必须先播放midi(可以作为背景音乐),然后再播放wav;wav文件还必须是以下的格式:
 PCM 8000KHZ;
 8Bit;
 Mono。

除了上面这种方法,只要是一个新的media被播放,上一个Player必须被停止而且释放资源。

posted @ 2005-11-21 15:56 让变化成为计划的一部分 阅读(423) | 评论 (0)编辑 收藏

    /*
     * javaME中一向没有与StringTokenizer相对应的类,Ostermiller提供了一个。他的util类包还有很多很多其他帮助类。
     * 你只需要将
        
http://ostermiller.org/utils/StringTokenizer.java.html中的
        public class StringTokenizer implements java.util.Enumeration, java.util.Iterator {
        
        简化为
        public class StringTokenizer implements java.util.Enumeration{
        。
        即可立即在midlet中使用
            String s = "  (   aaa  \t  * (b+c1 ))";
            StringTokenizer st = new StringTokenizer(s, " \t\n\r\f", "()+*");
            while (st.hasMoreTokens()) {
                System.out.println(st.nextToken());
        ,我经过实际测试,得到了如下结果:
        (
        aaa
        *
        (
        b
        +
        c1
        )
        )
     
*/

    String s 
= "  (   aaa  \t  * (b+c1 ))";
    StringTokenizer st 
= new StringTokenizer(s, " \t\n\r\f""()+*");
    
while (st.hasMoreTokens()) {
        System.out.println(st.nextToken());

posted @ 2005-11-21 15:06 让变化成为计划的一部分 阅读(321) | 评论 (0)编辑 收藏

     摘要: 不过,正像下面的帖子中谈到的,Nokia 7650机型的问题是无法克服的,当你接电话时关闭了游戏,那么电话打完后你也无法启动游戏了,除非重启手机。  阅读全文

posted @ 2005-11-16 22:42 让变化成为计划的一部分 阅读(501) | 评论 (1)编辑 收藏

有点像手机英文输入法中,按2一下代表a,连按两下代表b,连续三下代表c。
据说,你可以用timertask来做这件事情。

我的一个设想是(未曾代码试验过,错了请指出):

用户按键“1”,那么计数他按了多少下,根据他按的次数去你事先写好的数组中查到是哪一个字符。如果用户迟迟没有再按下去,那么到了一定时间,就应该确认他的输入了,timer呢就调用confirmCharacter()。

String[] values = {".,1","abc","def"... ...};
 
keyPressed(keyCode) {
  int index = keyCode - KEY_NUM0;
  if(index == lastindex) charselected++;
  else lastindex = index;
   // here reset the key confirmation timer
 
   tempInputString+=values[index].char(charselected);
}
 
//When timer gets triggered, it calls this method
void confirmCharacter() {
    inputString = tempInputString;
    lastindex = -1;
}

posted @ 2005-11-16 19:19 让变化成为计划的一部分 阅读(301) | 评论 (0)编辑 收藏


譬如说你是在一个Form上,那么有一点点不幸。
据我所知,除非你在Form上加一个CustomItem,并且选中它,那么你的
protected void keyPressed(int key) {
    System.out.println("Key pressed: "+key);
}
能够打印出你的按键。
但是如果你当前焦点在TextField或其他lcdui.Item,那么不可能截获按键。

如果我说错了,请指出。

譬如说你当前是在一个Canvas上,ok,
To "catch" an event, just implement one of

# showNotify()
# hideNotify()
# keyPressed()
# keyRepeated()
# keyReleased()
# pointerPressed()
# pointerDragged()
# pointerReleased()

如果你特地针对keyPressed,那么:
public class MyCanvas extends Canvas {
  MyMIDlet midlet;  // the midlet reference
  public MyCanvas(MyMIDlet m) {
    midlet = m;
  }
  protected void keyPressed(int keyCode) {
    if (getGameAction(keyCode) == Canvas.FIRE) {
      midlet.firePressed();
    }
  }
}

不过,值得注意的是,手机的按键并不能保证个个都能拿到,而且上下左右之类的特定意义的按键也未见得都有,所以小心。

posted @ 2005-11-16 18:44 让变化成为计划的一部分 阅读(551) | 评论 (0)编辑 收藏

     摘要: 请参考java.util.TimerTask. TimerTask is something like Timer in VisualBasic. You can sepcify a time period in milliseconds for your requirement"一幅LOGO显示完以后,几秒种自动显示下一幅LOGO". Here is an sample code. pu...  阅读全文

posted @ 2005-11-16 18:19 让变化成为计划的一部分 阅读(486) | 评论 (0)编辑 收藏

     摘要: 上回说到申请动态IP是可以了,并且准备好了一个线程等候在socket://10.16.195.219:8110之类的端口上监听。

这次把代码修改了,完成了监听线程之后,就相当于起了一个Socket Server,一旦有人要连接它,就回复一个字符串说“God bless you!You are the No.”后面加上是第几位访问者的序号。

菜单中也相应加入了一个命令“联系ServerSocket”,就是向界面中的"ServerSocket为:"编辑框所指明的Server发起Socket连接请求,看能否得到回复;如果有回复,就输出到屏幕上。  阅读全文

posted @ 2005-11-16 16:29 让变化成为计划的一部分 阅读(305) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页