Java me 视频捕获问题
我想从捕获的Java me 视频捕获问题,java-me,lwuit,Java Me,Lwuit,我想从捕获的视频中创建lwiit图像。问题是调用getSnapshot()时引发了MediaException: 那么问题的原因可能是什么呢?MMAPI能够创建图像,您可以轻松地将其转换为LWUIT图像(具有接受对象的创建图像)。然而,出于某种原因,提出此API的“天才”将图像捕获作为受限制的API,以保护您的隐私。因此,在没有操作员/制造商签名的情况下,您无法有效地调用此API MMAPI具有创建图像的功能,您可以轻松地将其转换为LWUIT图像(具有接受对象的创建图像)。然而,出于某种原因,提
视频
中创建lwiit
图像
。问题是调用getSnapshot()
时引发了MediaException
:
那么问题的原因可能是什么呢?MMAPI能够创建图像,您可以轻松地将其转换为LWUIT图像(具有接受对象的创建图像)。然而,出于某种原因,提出此API的“天才”将图像捕获作为受限制的API,以保护您的隐私。因此,在没有操作员/制造商签名的情况下,您无法有效地调用此API MMAPI具有创建图像的功能,您可以轻松地将其转换为LWUIT图像(具有接受对象的创建图像)。然而,出于某种原因,提出此API的“天才”将图像捕获作为受限制的API,以保护您的隐私。因此,在没有操作员/制造商签名的情况下,您无法有效地调用此API 我对Canvas/LCDUI了解不多。?您能使用LWUIT UI元素吗?将其转换为LWUIT将是一项困难的工作!我有一个和你一样的问题,看看这个关于如何在LWUIT中捕获图像的示例,我希望这对你有所帮助。我注意到,即使使用fileConnection.create()创建文件也不起作用!我的手机有点奇怪!最后我找到了原因:我的应用程序中有很多记录库,所以没有足够的空间放图像。我对Canvas/LCDUI不太了解。?您能使用LWUIT UI元素吗?将其转换为LWUIT将是一项困难的工作!我有一个和你一样的问题,看看这个关于如何在LWUIT中捕获图像的示例,我希望这对你有所帮助。我注意到,即使使用fileConnection.create()创建文件也不起作用!我的手机有点奇怪!最后我找到了原因:我的应用程序中有很多记录库,所以没有足够的空间放图像。
private void showCamera() // called when clicking the "open camera" command
{
try
{
Player mPlayer;
VideoControl mVideoControl;
mPlayer = Manager.createPlayer("capture://video");
mPlayer.realize();
mVideoControl = (VideoControl) mPlayer.getControl("VideoControl");
Canvas canvas = new CameraCanvas(this, mVideoControl, mPlayer, getFirstAvailableRoot(), "ADC"+adcId); // adcId is "1"
isFromPositionnement = true; // static variable
javax.microedition.lcdui.Display.getDisplay(controler).setCurrent(canvas);
mPlayer.start();
} catch (IOException ex) {
handleException();
} catch (MediaException ex) {
handleException();
}
}
private String getFirstAvailableRoot()
{
short iter;
String root = "Phone:/";
iter = 0;
Enumeration drives = FileSystemRegistry.listRoots();
while(drives.hasMoreElements() && iter < 1) {
root = String.valueOf(drives.nextElement());
iter++;
}
return root;
}
public class CameraCanvas extends Canvas implements CommandListener
{
...
public CameraCanvas(Ecran form, VideoControl videoControl, Player pPlayer, String pRoot, String dossierPhoto)
{
...
mCaptureCommand = new Command("Capturer", Command.SCREEN, 1);
addCommand(mCaptureCommand);
setCommandListener(this);
...
videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this);
try
{
videoControl.setDisplayLocation(2, 2);
videoControl.setDisplaySize(width - 4, height - 4);
}
catch (MediaException me)
{
try
{
videoControl.setDisplayFullScreen(true);
}
catch (MediaException me2)
{}
}
videoControl.setVisible(true);
}
private void capture() // called when clicking the mCaptureCommand command
{
try
{
isPhotoCaptured = true;
rawImg = vidCtrl.getSnapshot(null); // this throws the exception
vidCtrl.setVisible(false);
vidCtrl = null;
mPlayer.close();
mPlayer = null;
repaint();
}
catch (MediaException me)
{
isPhotoCaptured = false;
rawImg = null;
vidCtrl.setVisible(false);
vidCtrl = null;
mPlayer.close();
mPlayer = null;
handleException("capture ");
}
}
}