MMAPI抓取j2me

MMAPI抓取内置相机的方式

    //利用Player去抓取內置相機路徑 //利用Player去抓取内置相机路径
    Player player = Manager.createPlayer( " capture://video " ); Player player = Manager.createPlayer( " capture://video " );
    ※注意 :如果要進行拍照, 且要輸出為jpeg格式時, 必需要將"capture://video"改為"capture://devcam0"才可正常在MIDlet上正確顯示 ※注意 :如果要进行拍照,且要输出为jpeg格式时,必需要将"capture://video"改为"capture://devcam0"才可正常在MIDlet上正确显示
    //初始化 //初始化
    player.realize();
    //抓取Video control //抓取Video control
    VideoControl videoControl = (VideoControl) ( player.getControl("VideoControl") ); VideoControl videoControl = (VideoControl) ( player.getControl("VideoControl") );
    //設定Display mode //设定Display mode
    videoControl.initDisplayMode( VideoControl.USE_DIRECT_VIDEO, this ); videoControl.initDisplayMode( VideoControl.USE_DIRECT_VIDEO, this );
    //設定video顯示位置 //设定video显示位置
    videoControl.setDisplayLocation(x, y); videoControl.setDisplayLocation(x, y);
    //設定video顯示大小 //设定video显示大小
    videoControl.setDisplaySize( Width, Height ); videoControl.setDisplaySize( Width, Height );

使用MMAPI錄音 使用MMAPI录音

    //建立手機內置錄音的資料來源(DataSource) //建立手机内置录音的资料来源(DataSource)
    Player p = Manager.createPlayer("capture://audio"); Player p = Manager.createPlayer("capture://audio");
    p.realize();
    RecordControl rc = (RecordControl)p.getControl("RecordControl"); RecordControl rc = (RecordControl)p.getControl("RecordControl");
    //設定儲存位置 //设定储存位置
    rc.setRecordLocation("file:/tmp/audio.wav");
    rc.startRecord(); //開始紀錄 rc.startRecord(); //开始纪录
    p.start(); //錄音五秒 p.start(); //录音五秒
    Thread.currentThread().sleep(5000);
    p.stop(); //停止 p.stop(); //停止
    rc.stopRecord(); //停止紀錄 rc.stopRecord(); //停止纪录
    rc.commit(); //完成 rc.commit(); //完成

使用MMAPI拍一張照片 使用MMAPI拍一张照片

    //從camera抓取一張照片, 如果傳入值設定為null時, 抓取格式為系統預設值. //从camera抓取一张照片,如果传入值设定为null时,抓取格式为系统预设值.
    byte[] pngImage = videoControl.getSnapshot( null ); byte[] pngImage = videoControl.getSnapshot( null );

    也可以把null替換成下列格式,抓取所想要的圖片格式 也可以把null替换成下列格式,抓取所想要的图片格式
    encoding=gray8&width=160&height=120
    encoding=jpeg&quality=80&progressive=true&type=jfif
    (progressive JPEG with quality 80 in jfif format) (progressive JPEG with quality 80 in jfif format)
    encoding=jpeg&type=exif
    (JPEG in exif format) (JPEG in exif format)
    encoding=png&colors=rgb888
    (24 bits/pixel PNG) (24 bits/pixel PNG)
    encoding=rgb888
    (raw 24-bit rgb image) (raw 24-bit rgb image)
    encoding=rgb&colors=rgb888
    (raw 24-bit rgb image) (raw 24-bit rgb image)

    //example
    byte[] pngImage = videoControl.getSnapshot( " encoding=png&colors=rgb888 " ); byte[] pngImage = videoControl.getSnapshot( " encoding=png&colors=rgb888 " );

    //最後再將取得的data建立成image, 並draw出來 //最后再将取得的data建立成image,并draw出来
    Image image = Image.createImage(pngImage, 0, pngImage.length); Image image = Image.createImage(pngImage, 0, pngImage.length);
    g.drawImage(image, 0 , 0 , 0); g.drawImage(image, 0 , 0 , 0);

以上階為程式片段。以上阶为程式片段。

相关文章:

看完了要说点啥么?