"相机错误1004"使用Android相机拍照时出错

时间:2013-10-03 13:34:16

标签: java android camera

我正在开发两个应用程序作为服务器和客户端。服务器应用程序重复拍照并通过tcp套接字将它们发送到客户端应用程序。 在onPictureTaken函数中,我在base64中编码字节数组,并将结果字符串写入输出流。但是,拍完照片后,相机会出现“相机错误1004”的错误。

起初,我认为有内存泄漏,而且确实如此。但现在,我通过部分编码来解决它。不过,相机会在一段时间后发出错误。这个错误意味着什么?

以下是该函数的代码:

public void onPictureTaken(byte[] data, Camera camera) {
    Log.e(TAG, "Taking picture of " + data.length + " bytes.");
    String imageXML = "<image>" + encodeTobase64(data) + "</image>"; 
    BufferedWriter bufferedWriter;
    try {
        bufferedWriter = new BufferedWriter(new OutputStreamWriter(out));
        bufferedWriter.write(Utils.packServerMessage(imageXML));
        bufferedWriter.flush();
        Log.e(TAG, "Picture is sent.");
        isReady = true;
    } catch (IOException e) {
        Log.e(TAG, "Picture cannot be sent.");
        isError = true;
    }
}

1 个答案:

答案 0 :(得分:0)

  

此函数属于在不同线程中运行的类。

Java有方法(不是函数),类不在线程上运行(方法可以)。

如果这是the onPictureTaken() of your Camera.PictureCallback,则在主应用程序线程上调用。