首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTC钻石可以支持使用j2me的MMAPI吗?

HTC钻石可以支持使用j2me的MMAPI吗?
EN

Stack Overflow用户
提问于 2011-10-13 22:11:50
回答 1查看 246关注 0票数 0

我想让我的j2me项目具有使用MMAPI(JSR135)拍摄图片的能力,所以我用以下代码检查我的HTC钻石

代码语言:javascript
复制
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;

public class jsrtest extends MIDlet implements Runnable,CommandListener{
    Form form;
    Thread thread;
    Command c=new Command("Exit",Command.EXIT,0);
    public jsrtest()
    {
        Display.getDisplay(this).setCurrent(form=new Form("JSR Test"));
        form.addCommand(c);
        form.setCommandListener(this);
        (thread=new Thread(this)).start();
    }
    protected void destroyApp(boolean u){
        super.notifyDestroyed();
    }
    protected void pauseApp() {
    }
    protected void startApp(){
    }
    public void run() {
        checkJSR("MIDP2.0","javax.microedition.lcdui.game.GameCanvas");
        checkJSR("CLDC1.1","java.lang.Float");
        checkJSR("MMAPI","javax.microedition.media.Player");
        checkJSR("WMAPI","javax.wireless.messaging.Message");
        checkJSR("JSR75","javax.microedition.io.file.FileConnection");
        checkJSR("JSR082","javax.bluetooth.UUID");
        checkJSR("JSR135","javax.microedition.media.Control");
        checkJSR("JSR135_videocontrol","javax.microedition.media.control.VideoControl");
        checkJSR("JSR179","javax.microedition.location.Location");
        checkJSR("JSR180","javax.microedition.sip.SipConnection");
        checkJSR("JSR184","javax.microedition.m3g.Mesh");
        checkJSR("JSR211","javax.microedition.content.Registry");
        checkJSR("JSR226","javax.microedition.m2g.SVGImage");
        checkJSR("JSR229","javax.microedition.payment.TransactionRecord");
        checkJSR("JSR234","javax.microedition.amms.Module");
        checkJSR("JSR238","javax.microedition.global.Formatter");
        checkJSR("JSR239","javax.microedition.khronos.egl.EGL");
    }
    private void checkJSR(String jsr,String className)
    {
        try {
            Class.forName(className);
            form.append(jsr+" Supproted\n");
        } catch (ClassNotFoundException e) {
            form.append(jsr+" Not Supproted\n");
        }
    }
    public void commandAction(Command cmd, Displayable disp) {
        this.destroyApp(false);
    }
}

这表明HTC钻石支持MMAPI。

所以我在我的HTC钻石上测试了以下代码,看看摄像头是否工作正常,但失败了:

代码语言:javascript
复制
private void test(){
     Player p;
     VideoControl vc;
     try{
       p = Manager.createPlayer("capture://video");
       p.realize();
       vc = (VideoControl) p.getControl("VideoControl");
       form.append(new StringItem("mmmmmmmm",""));
       if (vc != null) {
        form.append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null));
       }
       p.start();
     }catch(Exception e){
        e.printStackTrace();
     }

}

上面的代码在JAVA ME平台SDK3上运行良好。有人能告诉我为什么MMAPI不能在我的手机上运行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-13 22:47:26

您可以做一个额外的测试,看看是否支持视频采集:

代码语言:javascript
复制
if(System.getProperty("supports.video.capture") == null){
    //Video capture not supported
}

但我认为主要问题在这一点上:

代码语言:javascript
复制
form.append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE, null));

试试这个:

代码语言:javascript
复制
    vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, <a Canvas here>);
    vc.setDisplayFullScreen(true);
    vc.setVisible(true);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7755456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档