마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 통화 or 무전기 구현방법에 대한 질문

0 추천
안녕하세요.

프로그램 공부를 하고 있는 초보 학생입니다.

 

안드로이드 폰에서 폰으로 음성 전달을 하는 프로그램을 만들고 있는데요.

현재는 AudioRecord, AudioTrack, Socket, Stream을 사용해서

클라이언트 폰에서 녹음을 하고, 이 녹음 파일을 소켓을 사용하여

서버 폰으로 전송하여 서버 폰에서 플레이 되게끔 구현했습니다.

 

그러던 중 문듯 우리가 사용하는 지니나 멜론같은 음악플레이어의 경우에는 서버에는 음악 파일이 있더라도

클라이언트의 공간에 파일을 전송시켜 듣는 방식이 아니라 실시간 스트리밍을 사용하여

클라이언트 측에 파일이 저장되지 않아도 바로 노래를 들을 수 있게 한다는 것이 생각났습니다.

 

이와 같은 방식으로 구현하기 위해서는 서버와 클라이언트에서 어떤 클래스를 어떻게 사용해야하는지

혹시 알고 계신다면 짧은 글이라도 남겨주시기 부탁드립니다.

 

제가 현재 구현한 프로그램은 클라이언트 폰의 마이크에서 소리를 받고, 파일로 저장하고, 소켓으로 서버에 전송하고, 전송받은 파일을 저장하고, 저장한 파일을 플레이하기에 시간차로 인한 스레드 간의 간섭, 변수가 초기화되지 않았는데 스레드가 먼저 실행되는 등 문제점이 많이 발생합니다.

더불어 이와 같은 문제점에 대해 좋은 방법을 가지고 계시거나, 다른 획기적인 아이디어가 있으신 분들께서도 짧게나마 댓글로 알려주시기를 부탁드립니다.

 

이상, 프로그래밍 입문자가 여러 고수분들께 배움을 요청합니다.
RockHead (120 포인트) 님이 2015년 7월 9일 질문
안녕하세요.
혹시 소스좀 공유받을수있을까요~ ㅠㅠ
저는지금 UDP 클라이언트폰에서 서버폰으로 텍스트만 전달하는거까지 했는데
음성 전달하는방법을 찾고있는데 쉽지않네요

1개의 답변

0 추천
소켓에 스레드 프로그래밍이라는 그 원리 자체가

애초에 초보고 후딱 할 수 있는 범위는 벗어납니다.

저런 말로 써봐야 어차피 답얻기는 요원할 테고,

다양하게 공부해서 구현해봐야죠.

그런 문제 수정하는게 프로그래머의 역할입니다.

또, 전체 플로우야 구현하는 사람마음이고,

성공적인 구현에 대한 정보는 기업 비밀에 해당하므로 알려줄 이유도 없고, 구할 수 없고,

공개 자료를 찾아 포팅해야겠죠.

다만 한가지,

스트리밍은 UDP로 뿌리는 것이 일반적입니다.

서버 프로그래밍,스레드,TCp/IP 세가지를 다 마스터 해야 꽉 잡을 수 있습니다.
익명사용자 님이 2015년 7월 9일 답변
질문을 잘 못 이해하셨나봅니다.
익명으로 댓글을 달아주신분의 글은 저도 알고 있는 사실입니다.

저는 성공적인 소스를 알려달라는 것이 아니며,
후딱 할 수 있는 방법을 알려달라는 것도 아닙니다.

새로운 공부를 하기 위해 제가 시도 해본 방법 말고 다른 방법으로
접근할 수 있는 것이 있는지 혹은 제가 묻고자 하는 것이 사실은 같은 방법이었는지에 대해 묻고 있는 것이며,
저와 비슷한 부류의 공부를 하고 있는 학생이나, 평소에 관심있으셨던 분들의 귀띔을 바랬던 것 입니다.

또한 배우고자 하는 마음에 저런 글을 적게 된 것이니 비꼬지 말아주시기 바랍니다.

마지막으로 UDP에 대한 귀띔은 감사합니다.

그리고 위의 답변과는 상관없이 혹시 저와 같은 공부를 하고 계신 분들이 이 글을 읽으시고 도움이 되실까봐 글을 남기겠습니다.
저는 지니 플레이어가 클라이언트의 공간에 음원을 저장하지 않고 바로 플레이한다고 생각했었는데 개인적으로 알아본 결과 스트리밍 파일을 임시로 저장한 후 플레이하는 것 같습니다.
개인적인 검색과 견해이므로 100% 확신한 정보는 아니니 참고해주시기 바랍니다.
...