在Video Canvas上绘制图形

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

我们经常使用MMAPI提供的功能播放视频或者拍照图片,这时候可能希望在Video Canvas上绘制一些菜单或者图形。本文介绍如何在SonyEriCSSon的机型上完成上面的特性。

在SonyEricsson JP7的机型上,实现上面的特性非常容易。只需要在初始化VideoControl的时候指定一些特定的参数即可。例如

videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO (overlay << 8) (SPRite.TRANS_ROT90 << 4), canvas);

其中overlay=1的时候代表绘制的图形覆盖在video之上,overlay=0的时候代表不覆盖。

对于JP6或者以前的版本,如果也想实现这样的效果则需要使用一些小技巧。首先我们还是初始化VideoControl,

videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, canvas);

问题的关键在Canvas的paint方法的处理上,为了避免绘制的内容被覆盖我们必须等Player启动之后再绘制我们的内容,实现这一点可以同过PlayerListener来完成,如下所示:

public void playerUpdate(Player p, String event, Object obj) {

switch(p.getState()){

case Player.STARTED:

initialized = true;

break;

}

}

在绘制完成后,还需要调用Graphics.setClip(0,0,0,0)方法。

public void paint(Graphics g) {

if(camera!=null){

if(camera.isInitialized() && !update){

menu.draw(g);

g.setClip(0, 0, 0, 0);

}else if(update){

update = false;

}

}

}

运行结果如上面所示。这个特性是比较有用的,今天阅读SE开发者社区的时候发现的,大家可以看看原文

http://developer.sonyericsson.com/site/global/techsupport/

tipstrickscode/java

/p_video_overlay_draw_canvas.jsp

18575526.zip 这个是代码进入讨论组讨论。

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航