繁体   English   中英

使用Android相机拍摄照片时出现“ Camera Error 1004”错误

[英]“Camera Error 1004” Error while taking pictures with Android Camera

我正在开发服务器和客户端两个应用程序。 服务器应用程序反复拍照,然后通过tcp套接字将其发送到客户端应用程序。 在onPictureTaken函数中,我在base64中对字节数组进行编码,然后将结果字符串写入输出流。 但是,拍摄完一些照片后,相机会显示错误“ Camera Error 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;
    }
}

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

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

如果是这样onPictureTaken()你的Camera.PictureCallback ,被称为主应用程序线程上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM