我想从相机的手机中取出相框并将其发送给"处理器",所以我喜欢以下内容:
mCamera.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
int frame = 0;
public synchronized void onPreviewFrame(byte[] data, Camera camera) {
try {
super.clone();
} catch (CloneNotSupportedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
frame++;
if (frame == 1) {
timestamp = System.currentTimeMillis();
}
duration = (System.currentTimeMillis() - timestamp) / 1000;
Log.v("Time", "Time = " + duration);
System.out.println("" + frame);
try {
camera.addCallbackBuffer(data);
if (duration != 0) {
// dataArr.add(data);
if (duration <= 15) {
msg = handler.obtainMessage();
msg.obj = (byte[]) data.clone();
handler.sendMessage(msg);
// System.out.println("Sent from main!!");
} else {
stopVideo();
}
}
// Log.v("time", ""+dataArr.size());
但是,当我运行我的应用程序时,我得到了一个460816字节分配的内存不足&#34;错误。我的logcat喜欢:
FATAL EXCEPTION:main
java.lang.OutOfMemoryError
java.lang.Object.internalClone(Native Method)
java.lang .Object.clone(Object.jave.158)
at com.example.dechme.MainActivity$3.onPreviewFrame(MainActivity.java:151)
MainActivity中的第151行是
msg.obj = (byte[]) data.clone();
我不知道如何解决此错误。如果你有一些线索,请告诉我。 感谢