이전에 올렸던 내 블로그글
*졸업프로젝트 MagicBox에서 내가 한 활동들 관련 정보글을 작성함*
*1)figma로 ui짜기 2)서버 연결 제외 전체적인 MagicBox 기능 거의 완성*
+안드로이드 관련 자료조사한 내용
여기서부터는 구현된 내용은 아니고(1번 제외) 방학때 진행하고자 미리 자료조사하고 공부한 내용들이다!
1.MagicBox 촬영기능
안드로이드 촬영기능을 구현해주는 여러가지 방식중에 가장 심플한 촬영기능 구현방식을 찾아보았다. 구글링을 해보니 android developer에 친절하게 설명이 나와있었다! 커스텀 촬영기능을 만들수도있지만, 일단은 그냥 사용자 핸드폰에 깔린 카메라에 액세스해서 사용할 수 있게하는 기본촬영기능으로 구현하기로했다. 구현방식 조사는 내가했지만 시간이없어서 이정윤님이 대신 구현해주셨다!
참고한 사이트이다
↓
developer.android.com/training/camera/videobasics?hl=ko
간단하게 코드를 설명하자면 : 1)카메라 기능 요청 2)카메라 앱에게 작업 위임하기
1)안드로이드 스튜디오의 manifest파일에 해당 코드를 추가한다. 앱을 처음 구동할때 액세스 허용 요청하는 적이 꽤 있었을텐데, 바로 그 기능을 구현한거다.
<manifest ... >
<uses-feature android:name="android.hardware.camera"
android:required="true" />
...
</manifest>
2)실제로 카메라앱으로 넘어가기위한 코드이다. 버튼누르면 밑에서 팝업뜨면서 사용할 앱 선택하라는 많이보던 그 선택지가 뜬다.
static final int REQUEST_VIDEO_CAPTURE = 1;
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
}
}
2.서버와의 연결법
django rest framwork하고 안드로이드 연결을 해야해서 하는 방법을 찾아보았다.
참고한 사이트이다
↓
duzi077.tistory.com/129?category=703147
위 사이트에서 안드로이드쪽에서 수행해야할 작업은 7번부터이다. 진행방식을 설명하자면:
1)rest api를 손쉽게 이용할 수 있도록 retrofit라는 라이브러리를 링킹
A. gradle 파일에 코드 추가하기(retrofit lib쓰겠다고 코드 작성하는 것임)
B. 네트워크 관련 코드작성
- application controller 클래스 만들기
- manifest 파일에 인터넷 사용 허가받기 위해 코드추가
2)call 인터페이스 만들기
networkservice.java를 만들어서 넣으면 된다. 코드는 위 사이트에 있다.(복사붙여넣기가 안되서 언지만 하겠다)
3)실제결과테스트해보기
3.촬영data를 핸드폰에 저장하지 않고 바로 서버로 올리는 방법 research
github.com/aminyazdanpanah/python-ffmpeg-video-streaming
stackoverflow.com/questions/43037267/how-to-set-androids-camera-as-the-input-of-ffmpeg
이왕이면 핸드폰에 영상이 저장되지않고 바로 서버로 올리는게 용량면에서 좋을거같아서 구글링을 하며 방법을 미친듣이 강구해봤다. 그래서 찾아낸게 서버로 라이브 스트리밍을 하고 해당 라이브 스티리밍 파일을 mp4로 변환하여 서버에 저장하는 방식이다. 사실 이렇게 하면 핸드폰에 저장이 안되는건지 확신이 없어서 해봐야알거같긴하다. + 서버작업이 80퍼라서 나혼자 시도해볼 수도 없다(하정님 담당이 서버라서)
위의 첫번째 링크는 서버와 기기 간에 라이브스트리밍 방법에 적혀있는 깃허브이고,
두번째 링크는 첫번째 링크에서 라이브스트리밍하는 카메라로 웹캠밖에 예시가 없어서 첫번째 링크에서 사용하는 ffmpeg라는 것(이게 라이브스트리밍을 할 수 있게 하는 기술인거같다)에서 라이브스트리밍 input으로 안드로이드 카메라를 사용하는 방법이 적혀있어서 가져왔다.
이부분은 일단 기본 카메라로 촬영하고 그걸 서버로 넘기는 기본방식에 성공할 경우 나중에 추가적인 개선을 위해서 구현해볼 예정이다.
4.간단한 서버 스터디 및 딥러닝 스터디
밑에 두 링크는 내가 이번 졸업프로젝트를 위해서 간단하게나마 공부하고 있는 것들이다. 서버나 딥러닝 부분도 기초지식은 있어야 서로간에 커뮤니케이션이 가능할듯하여 그렇게했다.
www.youtube.com/playlist?list=PL1Kb3QTCLIVtyOuMgyVgT-OeW0PYXl3j5
www.youtube.com/watch?v=LYmZB5IIwAI
5.그외 문서제출등을 위한 자료조사
'ANDROID' 카테고리의 다른 글
[졸업프로젝트 개발일지] 안드로이드 심화 - 서버와 협업하는 앱 만들기 (0) | 2021.01.29 |
---|---|
magicbox앱 코드로 이벤트 배우기 (0) | 2020.11.21 |
레이아웃 구성하기 (0) | 2020.11.21 |
새프로젝트 시작하기 + 깃허브 사용하기 (0) | 2020.11.21 |