<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
第一部分在"用户界面和多媒体"版面问题整理[j2medev.com][不断更新中]。下面是后续更新的部分。
全部目录为:
1 全屏问题
2 Image和ByteArray转换问题
3 getRGB问题
4 字符串换行问题
5 字体问题
6 重新播放音乐问题
7 MediaException问题
8 混音问题
9 CustomItem问题
10 Nokia播放Tone音乐问题
6 重新播放音乐问题
player/stop/start
关键词 | 详细描述 |
音乐停止播放后如何从起始位置重新播放? | “如果你的音乐自己播放完毕了,而用户手动提交命令要求重新播放,那么你可以直接调用player.play()即可。或者一开始播放音乐的时候就利用player.setLoopCount设定循环播放次数。 如果你希望音乐自动重新播放,那么就必须实现“播放器状态更新事件”: 以下内容为程序代码: // 绑定状态更新事件过程 player.addPlayerListener(this); /* * 本类实现了PlayerListener接口。通过这个事件来告知媒体已经播放完毕 */ public void playerUpdate(Player player, String event, Object data){ System.out.println("Enter playerUpdate>>" + event); if(event == PlayerListener.END_OF_MEDIA){ try{ .... }catch(Exception e){ e.printStackTrace(); } } else if(event == PlayerListener.STOPPED) { System.out.println("playerUpdate>>PlayerListener.STOPPED"); } else if(event == PlayerListener.STARTED) { System.out.println("playerUpdate>>PlayerListener.STARTED"); } } ” --- zhengyun |
SonyEricsson K750手机上无法实现暂停,续播功能? | “发觉在索爱K750手机上无法实现暂停,续播功能。该功能在MOTO,NOKIA手机上可以使用。” --trysunset |
| | |
7 MediaException问题
player/stop/start
关键词 | 详细描述 |
播放MIDI时,真机上会爆出MediaException 异常,而在其他机器上可正常播放MIDI? | “is = getClass().getResourceAsStream("/title.mid"); if (is != null) { player_ = Manager.createPlayer(is, "audio/midi"); player_.setLoopCount(-1); player_.start(); } 这个代码是我用来监测一款机器用的,在播放MIDI时,其真机上会爆出MediaException异常,而在其他机器上可正常播放MIDI! 有意思的是这个代码用来播放WAV则是正常的,由于该PDA机自带播放器,我将MIDI直接传入其中播放时可以播放的,所以应该不会有MIDI格式不兼容的问题! ” --- imtrash “虚拟机不支持MIDI的播放!我用过的NOKIA6630的手机就是这样的!” --- zgly “你可以将虚拟机可以播放的音乐类型用下面的代码 public void showForm() { String[] protocols, contentTypes; protocols = Manager.getSupportedProtocols(null); for (int i = 0; i contentTypes = Manager.getSupportedContentTypes( protocols[i]); for (int j = 0; j m_errForm.append(protocols[i] + ":" + contentTypes[j]); } } } 将信息显示在一个FORM里!” --- zgly “必须明确的一点是,我们的MIDlet是运行在Java ME平台环境下的。 不一定设备提供的功能在Java ME平台都得到了实现!” --- mingjava |
在真机测试中, Nokia7610弹出一个错误: “javax. microedition. media. MediaException: -18”? | “很明显是nokia 7610上不支持这种媒体格式设置media time,所以抛出了MediaException。 把p.setMediaTime(5 * SECS_TO_MICROSECS);删除即可” -- mingjava |
“error opening MIDI/tone device”或“fail in writing data to native”? | “播放MIDI的代码在k700和6600上都没问题,在moto上不知道怎么回事却报如下异常: javax.microedition.media.MediaException: fail in writing data to native 用e680i的模拟器仍然会报错, 不过报出来的是: javax.microedition.media.MediaException: error opening MIDI/tone device at com.sun.mmedia.MIDIPlayer.doPrefetch(+19) at com.sun.mmedia.BasicPlayer.prefetch(+34) 最后找到原因了,moto的机器不能同时有两个midi的player在prefetch()中,即使前面那个player并没有执行start(),后面生成player都会在prefetch()和start()的时候产生上面的异常! 因为我有一个midi player一直在prefetch状态,所以新生成的midi的player都不能start(). 真是个奇怪的现象阿,在其他手机上都不会有这个问题。” ---saltedfish |
| |
| | |
8 混音问题
player/mixer
关键词 | 详细描述 |
Moto真机上如何在播放背景音乐的时候再播放音效? | “摩托罗拉V300-V500-V600同时播放音乐的讲究: 唯一支持的同步播放音乐的办法是,midi和wav声音混合播放。 即使是这样,也存在着一个限制: 应用程序必须先播放midi(可以作为背景音乐),然后再播放wav;wav文件还必须是以下的格式: PCM 8000KHZ; 8Bit; Mono。 除了上面这种方法,只要是一个新的media被播放,上一个Player必须被停止而且释放资源。” --moto文档 “MOTO系列手机中JAVA程序播放一个声音文件比较简单,但是用于交互式音效时就有问题了。 根据MOTO的一些资料显示,在MOTO手机中播放声音有下面几条约束: 1、除了同时播放一个MIDI和一个WAV以外,MOTO手机无法同时播放多个声音,而且必须是先播放MIDI然后播放WAV; 2、除了MIDI或音阶序列以外,不能同时实现player的多个实例进入prefetched状态(预读取声音流); 3、播放新的声音之前,前一个player必须停止并释放资源(stop();deallocate())。 如果你遇到以下问题,可以试试我的解决方法: 1)只能播一次,或几次,接着就无法发出声音; 2)播放新的声音时,总是会多播放一次前一个声音。” ---linchangyu |
nokia6230i上的MediaException现象 | “当一个Player被prefetched,那么其他Player也就不再能够prefetched,除非它们都是midi或都是amr。 如果你没有在start/prefetch一个Player之前把其他的Player停下来,那么你将得到一个MediaException。” -- 无名 |
| | |
9 CustomItem问题
CustomItem/repaint/traverse
关键词 | 详细描述 |
CustomItem的repaint | “repaint()产生重绘事件,在CustomItem里它有两个同名的方法,其中一个有四个参数,用来指定重画区的起始X、Y坐标,宽度和高度;另外一个没有参数,表示重画CustomItem的整个区域。paint()方法里的后两个参数也是宽度和高度,但是这两个方法的宽度和高度没有任何联系, paint方法里的W和H是Item内容区域的宽度和高度,并且只有这两个值大于0时,paint()方法才会被调用。” --mydeman “repaint()被调用之后会立刻返回,而调用paint()回调函数的工作会有另外一个专门处理UI的线程来完成。因此如果希望得到paint()方法完成后再返回,那么就可以在repaint()之后立刻调用serviceRepaint(),来强制队列中重绘事件快点完成。” --- mydeman |
CustomItem上处理过左右上下方向键 | “由于我的CustomItem控件和一个Gauge控件同处于一个Form上,所以按上下左右键的时候,实际上被Form处理了,Form就认为上下左右键是在切换控件的焦点,而不会把这个按键事件传给我的CustomItem了。也就是说,我的写法一样不会得到上下左右键的按键事件。” -- zhengyun “一部手机是否实际支持CustomItem internal traversal,需要向getInteractionModes()方法查询才可知道,因为这是隐含的策略,并不是一定的。听说,在Nokia真机上,traverse好像并不好使用。 在我这里,这段代码在模拟器上能够使用,在真机上我不敢保证: 以下内容为程序代码: protected boolean traverse(int dir,int viewportWidth, int viewportHeight,int visRect_inout[]) { System.out.println("Enter traverse"); if(dir == Canvas.UP){ System.out.println("traverse>>Press Up key!"); return true; }else if(dir == Canvas.DOWN){ System.out.println("traverse>>Press Down key!"); return true; }else if(dir == NONE){ System.out.println("traverse>>Press None key!"); return true; } return false; } protected void traverseOut(){ System.out.println("Enter traverse out"); }” -- zhengyun “protected boolean traverse(int dir, int viewportWidth, int viewportHeight, int[] visRect_inout) { switch (dir) { case Canvas.DOWN: if (location == UPPER) { location = IN; } else { repaint(); location = LOWER; return false; } break; case Canvas.UP: if (location == LOWER) { location = IN; } else { repaint(); location = UPPER; return false; } break; case Canvas.LEFT: System.out.println("LEFT"); break; case Canvas.RIGHT: System.out.println("RIGHT"); break; } return true; } 实际上在FORM里的左右键事件,也被用来处理焦点,只不过在CUSTOM ITEM里左右键没有响应,用上下键来处理焦点事件了。” ---hebaochen |
| | |
10 Nokia播放Tone音乐问题
Sound/
关键词 | 详细描述 |
按键,音乐被中断 | “在Nokia 3650,7650上使用Tone播放声音,如果用户一按键,那么音乐马上被中断。这个问题是已经在Nokia官方开发论坛上得到确认。是Symbian 6.0系统上的一个bug,在Symbian 7.0系统的手机(Nokia 7610,6600)上没有这个问题,在Nokia 40上也没有这个问题。 解决之道:这是系统的bug,只有使用其它方式的音乐播放,比如midi格式音乐,否则是没有办法的。” --二当家的 |
| | |
分享到:
相关推荐
J2ME开发环境达建................................................................................................................2 Eclipse快速上手指南.....................................................
NULL 博文链接:https://univasity.iteye.com/blog/615238
本书介绍了J2ME游戏开发基础,以MIDP2为主。 http://www.j2medev.com/ebook/j2me/200605/710.html<br/>http://www.j2medev.com/ebook/UploadSoftPic/200605/20060531093745896.jpg
本手册由www.j2medev.com整理制作而成。手册中相应图片、图表、文字的版权归原作者所有。你可以分发本手册的拷贝,但请保证其内容的完整性。www.j2medev.com对于使用本手册造成的任何损失,概不负责。 本手册0.7...
J2ME开发网(www.j2medev.com)是国内发展势头很猛的J2ME技术的垂直门户。J2ME 开发网广泛的覆盖了基于CLDC的MIDP技术,并将逐步扩展到CDC方面。J2ME提供最新的 原创文章,促进开发者的技术交流;提供丰富的资源下载...
MEDEV_TPGO测试覆盖率TestGroupe 文件用于测试组类的不同方法。 但是,我遇到了一个 Git 问题,这迫使我将其移至源代码。 此外,我在使用 include 时遇到了问题。 移动中的 MEDEV 实际工作我总是忘记的有用 git 命令...
本教程由J2ME开发网(www.j2medev.com)的网友集体创作。任何人未经J2ME开发网的书 面许可,不得将本教程用于商业目的。本教程受到版权法的保护。盗用、截取教程中的文字、 图形、表格都将视为非法。如未标明,则...
Tate <br/>下载网址: http://www.j2medev.com/ebook/jese/200605/701.html<br/><br/>书籍图片: http://www.j2medev.com/ebook/UploadSoftPic/200605/20060531090149545.jpg<br/><br/><br/>Java 的...
本教程由J2ME开发网(www.j2medev.com)的网友集体创作。任何人未经J2ME开发网的书 面许可,不得将本教程用于商业目的。本教程受到版权法的保护。盗用、截取教程中的文字、 图形、表格都将视为非法。如未标明,则...
程序员常去的100个网站! 1 J2me开发网 http://www.j2medev.com/bbs/index.asp 2 J2me社区 http://www.j2meforums.com/forum/
2)和www.j2medev.com有转载文章合作协议的3)通过Rss聚合我的Blog。另外网上转载需要全文转发(包括文章的头部的声明),不要断章取义。 正文: 初识MVC模式 第一次认识到MVC模式是从MicrosoftMFC框架所
两,三年前自己写的一个小程序,曾经放到j2medev上 :) 最近换手机发现还能用!网上也还有人用,于是再放到上来。 <br>程序没有改动,单词 a-z 词库 4-6 级, 对大学同学还是有一定帮助的。 功能:单词...
J2ME 中文教程 by www.j2medev.com MIDlet 程序的机制。 第十章“MIDlet 的开发流程与部署”介绍了如何真正完成你的程序并打包发往设备运行。 第十一章“搭建开发平台—WTK”主要讲述J2ME 新手最常使用的开发工具...
显示Medev的历史信息,并清除所选定的信息。
第九章“MIDP 2.0 Push 技术”介绍了如何通过异步方式将信息传送给设备并自动启动J2ME 中文教程 by www.j2medev.comMIDlet 程序的机制。 第十章“MIDlet 的开发流程与部署”介绍了如何真正完成你的程序并打包发往...