본문 바로가기

컴퓨터학원(복습)(수료)

자바(JAVA)기반 안드로이드 웹&앱 개발 49일차(카메라, 음악파일재생)

이번 일차는 예시를 못올릴 것 같습니다.

21.05.12(수)에 앱을 만드는 평가가 있는데, 그것에 대해 고민해볼 시간이 필요합니다.

21.05.10(월) 49일차

[동영상 재생하기]

1. 동영상을 재생하고 싶다면 비디오뷰(VideoView) 위젯을 사용하면 되는데 XML 레이아웃에 <VideoView> 태그를 추가하기만 하면 동영상 플레이어를 바로 만들 수 있습니다.

※ 동영상 재생하기 예시

 

☞ 비디오뷰 객체를 자바 코드에서 참조한 후 동영상 파일의 위치를 setVideoURI() 메서드로 지정하기만 하면 동영상을 재생할 수 있습니다.

☞ 동영상의 재생 상태를 보거나 동영상을 제어할 때 사용되는 미디어콘트롤러(MediaController) 객체는 setMediaController() 메서드로 설정할 수 있는데 손가락으로 터치하면 콘트롤러 부분을 보여주게 됩니다.

☞ 비디오뷰 객체에는 getDuration이나 pause 와 같이 동영상을 제어하는데 필요한 다른 메서드들도 정의되어 있습니다.

 

[오디오 녹음하여 저장하기]

1. 오디오 녹음이나 동영상 녹화를 위해서는 미디어리코더(MediaRecordeR)가 사용됩니다. 다음과 같은 과정을 거쳐 음성을 녹음할 수 있습니다.

구분

설명

1. 미디어리코더 객체 생성

오디오 녹음을 위해 미디어리코더 객체를 new 연산자를 이용하여 만듭니다.

2. 오디오 입력 및 출력 형식 설정

오디오 정보를 입력받을 데이터 소스와 함께 출력 형식을 설정합니다.

3. 오디오 인코더와 파일 지정

오디오 파일을 만들 때 필요한 인코더(Encoder)와 함께 파일이름을 지정합니다.

4. 녹음 시작

녹음을 시작하면 오디오 파일이 만들어지고 인코딩된 바이트 스트림이 저장됩니다.

5. 매니페스트에 권한 설정

앱에서 녹음을 하려면 RECORD_AUDIO 권한이 있어야 하므로 매니페스트에 이 권한을 추가합니다.

※ 오디오 녹음하여 저장하기 예시

 

☞ setAudioSource() 메서드는 오디오 입력을 설정할 때 사용됩니다.

☞ setOutputFormat() 메서드로 미디어 포맷을 설정합니다.

☞ setAudioEncoder() 메서드는 인코더를 설정하는데 사용됩니다.

☞ setOutputFile() 메서드는 결과물 파일을 설정하는데 사용됩니다.

☞ 녹음에 필요한 정보를 모두 설정하고 나면 prepare()와 start()메서드를 이용해 녹음을 시작합니다.

☞ stopRecording() 메서드를 보면 녹음을 중지하기 위한 stop()과 release()가 호출됩니다.

☞ 녹음을 중지했을 때 결과물로 만들어진 녹음 파일을 미디어 앨범에 등록하기 위해서는 미디어 앨범의 내용 제공자를 이용해 새로 만들어진 녹음 파일의 정보를 등록합니다.

 

[동영상 녹화하기]

1. 오디오 녹음에 사용하던 MediaRecorder 객체는 동영상 녹화에도 그대로 이용할 수 있습니다.

2. 동영상 녹화가 오디오 녹음과 다른 점은 영상을 녹음하기 위한 입력 소스로 카메라를 지정하여 사용자가 카메라 미리보기를 할 수 있도록 만들어 주어야 한다는 것입니다.

※ 동영상 녹화하기 예시

 

☞ setVideoSource() 메서드를 이용한 비디오 입력 정보 설정, 그리고 setVideoEncoder()메서드를 이용한 비디오 인코더 정보의 설정이 추가되어야 합니다.

 

[유튜브 영상 재생하기]

1. 구글에서는 유튜브의 동영상을 재생할 수 있는 API를 제공합니다. 이 API를 이용하면 동영상 재생 및 녹화를 진행할 수 있습니다.

※ 유튜브 영상 재생하기 예시

 

☞ API를 사용할 수 있도록 도와주는 jar 파일을 추가해야 합니다.

 

[GPS로 나의 위치 확인하기]

1. 안드로이드 기반의 스마트폰 위치는 위치 관리자(LocationManager)라는 시스템 서비스가 관리합니다. 나의 현재 위치를 확인하는 가장 기본적인 방법은 위치 관리자에게 위치 정보를 요청하는 것으로 다음과 같은 단계를 거쳐야 합니다.

단계

설명

1단계

위치관리자 객체 참조하기

위치관리자(LocationManager)라는 시스템 서비스로 제공되므로,

getSystemService() 메서드를 이용해 위치관리자 객체를 참조합니다.

2단계

위치 리스너 구현하기

위치 관리자가 알려주는 현재 위치는 위치 리스너(LocationListener)를 통해 받게 되므로 새로운 리스너를 구현하여 전달 받은 위치 정보를 처리합니다.

3단계

위치 정보 업데이트 요청하기

위치 관리자에게 위치 정보가 변경될 때마다 알려달라고 요청하기 위해 requestLocationUpdates() 메서드를 호출합니다. 이 메서드의 파라미터로 2단계에서 구현한 위치 리스너 객체를 전달합니다.

4단계

매니페스트에 권한 추가하기

GPS를 사용할 수 있도록 매니페스트 파일에 ACCESS_FINE_LOCATION 권한을 추가하고 위험권한을 위한 설정과 코드를 추가합니다.

※ GPS로 나의 위치 확인하기 예시

 

[현재 위치의 지도 보여주기]

1. 교재대로 하면 작동하지 않아서 구글 맵 API 를 이용하셔서 하셨습니다.

※ 현재 위치의 지도 보여주기

 

[앱 위젯 만들기]

1. 교재대로 하면 작동하지 않습니다.