현제 일반 카메라 공유를위해
안드로이드(A)<-> 안드로이드 (B)
해서 통신을 연결하였습니다 A가 서버이고 B가 클라이언트입니다. B가 접속하면 A->B 로 카메라 영상 데이터를 프리뷰 콜백을 통해 전송하게하였는데 데이터가 정상적으로 날라가지않아 질문드립니다..
Camera.Parameters params = camera.getParameters();
int w = params.getPreviewSize().width;
int h = params.getPreviewSize().height;
int format = params.getPreviewFormat();
YuvImage image = new YuvImage(data, format, w, h, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
Rect area = new Rect(0, 0, w, h);
image.compressToJpeg(area, 50, out);
Bitmap bm = BitmapFactory.decodeByteArray(out.toByteArray(), 0, out.size());
byte[] tmp = out.toByteArray();
if(writeSocket !=null){
// writeSocket.writeInt(tmp.length);
writeSocket.write(tmp);
writeSocket.flush();
}
이부분이 서버데이터입니다.
readSocket = new DataInputStream(socket.getInputStream());
while (true) {
int length = readSocket.available();
byte buffer[] = new byte[length];
int ac = readSocket.read(buffer, 0, buffer.length);
String input = new String(buffer, 0, buffer.length);
final String recvInput = input.trim();
if(ac==-1)
break;
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
setText(recvInput);
}
});
}
받는쪽은 이렇게되어있습니다.
void setText(String msg){
byte[] msgbyte = msg.getBytes();
Bitmap bm = BitmapFactory.decodeByteArray(msgbyte, 0, msgbyte.length);
ImageView ivCam = (ImageView) findViewById(R.id.imageView1);
ivCam.setImageBitmap(bm); /// NULL POINT EX HERE!
}
이렇게해서 화면에 뿌려주고 있구요.. 화면에 출력이돼지않아서요 . 어느부분이 잘못되었는지 궁금합니다.ㅠ