안드로이드 개발 질문/답변
(글 수 45,052)
http://stackoverflow.com/questions/10550139/android-ics-and-mjpeg-using-asynctask
위 링크 참고해서 테스트 중입니다
해당 소스는 전체화면으로 캠만 출력하는 레이아웃이 되게 해놨던데
저는 미리 만들어놓은 레이아웃 안에 캠 출력하는 레이아웃이 들어가게 해놨습니다
공개된 외국 캠 주소를 사용하면 문제가 안 생기는데 따로 마련한 캠을 사용하면 문제가 생깁니다.
소스 코드
protected MjpegInputStream doInBackground(String... url) { //TODO: if camera has authentication deal with it and don't just not work HttpResponse res = null; DefaultHttpClient httpclient = new DefaultHttpClient(); Log.d(TAG, "1. Sending http request"); try { //아래가 문제가 생기는 것으로 의심되는 코드 res = httpclient.execute(new HttpGet(URI.create(url[0]))); Log.d(TAG, "2. Request finished, status = " + res.getStatusLine().getStatusCode()); if(res.getStatusLine().getStatusCode()==401){ //You must turn off camera User Access Control before this will work return null; } return new MjpegInputStream(res.getEntity().getContent()); } catch (ClientProtocolException e) { e.printStackTrace(); Log.d(TAG, "Request failed-ClientProtocolException", e); //Error connecting to camera } catch (IOException e) { e.printStackTrace(); Log.d(TAG, "Request failed-IOException", e); //Error connecting to camera } return null; }
맨 처음 실행할 때는 문제 없이 잘 출력됩니다.
화면이 꺼지거나 홈 버튼을 누르거나 해서 onResume()이 호출된 다음부터가 문제입니다
res = httpclient.execute(new HttpGet(URI.create(url[0])));
이 코드에서 진행이 안 되더군요
외국 공개 주소를 사용하면 저 부분은 매끄럽게 잘 진행됩니다. 멈춰서는 일 없이요
그런데 개인 캠은 매끄럽게 넘어가지 않고 멈춰섭니다. 진행이 안 됩니다.
동시에 캠을 보는 다른 화면도 똑같이 멈추고, 그대로 냅두면 접속이 끊어집니다.
테스트 어플을 태스크킬러 같은걸로 완전히 죽여버리면 다시 보이긴 보입니다만...
그렇다고 마냥 캠 의심만 하기도 묘한게
IP Cam Viewer Lite로 캠을 보게 되면 이런 끊김 현상이 거의 없거든요
어떤 방법을 사용해야 좋을지 좋은 생각이 나오지 않네요
이상한게 하나 더 있는데
현재 코드로 바탕화면으로 나가거나 하는 경우에 다른 쪽의 캠영상이 그냥 멈춥니다
역시 이것도 태스크킬러 등으로 완전히 죽여야 다시 재생되구요