1

我正在开发两个应用程序作为服务器和客户端。服务器应用程序重复拍照并通过 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;
    }
}
4

1 回答 1

0

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

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

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

于 2013-10-03T23:01:44.800 回答