我正在开发两个应用程序作为服务器和客户端。服务器应用程序重复拍摄照片并通过tcp套接字发送给客户端应用程序。 在onPictureTaken函数中,我使用base64编码字节数组并将结果字符串写入输出流。但是,拍摄一些照片后,相机会给出错误信息,如“相机错误1004”。使用Android相机拍照时出现“相机错误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;
}
}
什么是'out'?如果它是一些流到服务器,为什么你在主应用程序线程上做网络I/O? – CommonsWare
out是一个outputStream,并且此函数属于在不同线程中运行的类。 –