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);
以上階為程式片段。以上阶为程式片段。

看完了要说点啥么?