동영상도 직전 포스팅인 오디오 녹음과 같이 MediaRecorder 객체를 생성하여, 초기화를 해준 뒤 start() 메서드를 사용하여 기록할 수 있다. Camera2 API를 이용하여 카메라 미리보기를 생성하고, Record 버튼을 눌러 동영상을 촬영한 뒤 저장까지 해보려고 한다. Camera2 API를 이용하여 미리보기를 만들고 이를 캡쳐하는 것은 Multi Media 5 포스팅에서 다뤘으므로 생략하고, 이번 예제는 일반 TextureView 가 아닌 AutoFitTextureView를 아래와 같이 따로 생성하여 그 위에 FrameLayout을 올려 구성했다. ◎AutoFitTextureView.java package com.example.samplecamera2recorder; import andr..
오디오나 동영상을 재생할 때 미디어 플레이어가 사용되는 것처럼 오디오 녹음이나 동영상 녹화를 위해서는 MediaRecorder를 사용한다. 오디오의 녹음은 보통 아래와 같은 순서로 코드를 작성한다. MediaRecorder 객체 생성 오디오 입력 및 출력 형식 설정 오디오 인코더와 파일 지정 녹음 시작 ◎MainActivity.java package com.example.audiorecorder; import android.content.ContentValues; import android.media.MediaPlayer; import android.media.MediaRecorder; import android.net.Uri; import android.os.Build; import android.os..
이전 포스팅에서 카메라 미리보기 예제에서는 Camera API와 SurfaceView를 이용하여 구현을 했었다. 하지만, Camera API는 카메라가 지금의 스마트폰처럼 많지 않은 환경에 맞추어 개발된 API 이기 때문에 현재의 스마트폰 환경에 사용하기에는 적합하지 않아서 deprecated 되었다. 카메라 미리보기와 SurfaceView에 대한 개념을 이해하기 위해서 다루고 넘어가긴 했으나, 특수한 경우가 아니라면 앞으로 작성할 일이 거의 없는 코드나 마찬가지이다. 이번 포스팅에서 Camera API의 단점을 보완하고자 출시된 Camera2 API를 다뤄보면서 카메라 미리보기와 버튼을 눌러 파일을 저장하는 것까지 예제로 다뤄보려고 한다. 우선 Camera2 는 CameraManager instance..
직전 포스팅과 마찬가지로 동영상 재생 또한 MediaPlayer를 사용하여 구현할 수 있다. 또한 동영상을 재생하기 위해서는 Layout 단에서 VideoView 위젯을 추가해야 한다. 오디오와 마찬가지로 굉장히 간단하게 구현할 수 있으므로, 바로 예제를 한번 확인해보자. ◎MainActivity.java package com.example.samplevideo; import android.net.Uri; import android.view.View; import android.widget.Button; import android.widget.MediaController; import android.widget.VideoView; import androidx.appcompat.app.AppCompatAc..
멀티미디어를 위해 제공되는 미디어 API 는 android.media 패키지가 들어있다. 그 중 MidiaPlayer Class는 음악 파일과 같은 오디오와 동영상 재생을 담당한다. 미디어 플레이어로 음악 파일을 재생하는 과정은 다음과 같이 세 단계로 나눌 수 있다. 데이터 소스 URL 지정 준비 - prepare() 시작 - start() 그리 어려운 코드는 아니니 바로 예제를 확인하자. ◎activity_main.xml ◎ActivityMain.java package com.example.sampleaudio; import android.media.MediaPlayer; import android.view.View; import android.widget.Button; import android.wi..
Intent 객체를 사용하여 카메라 어플을 실행한 뒤 사진을 찍는 방법은 그리 복잡하지 않다. 또한 단말의 카메라 앱을 사용하기 때문에 단말의 카메라 앱이 기본으로 제공하는 기능을 그대로 사용할 수 있다. 하지만 단순히 사진만 찍는 것이 아닌 화면에 증강현실이나 그래픽 등을 보여주려고 한다면, Intent 객체로 어플을 실행시키는 것 이외에 다른 작업이 필요하다. 카메라 미리보기 코드를 작성하여, 제작한 앱에서 직접 사진을 찍도록 구성할 수도 있다. 이 때는 일반 View가 아니라 SurfaceView 객체를 사용하는데, 우선 이 SurfaceView객체에 대하여 알아보도록 하자. SurfaceView 객체는 아래 그림처럼 SurfaceHolder에 의해 제어되며, SurfaceHolder는 setPre..
Android에서 카메라로 사진을 찍어 사진 데이터를 처리할 수 있는 방법은 크게 2가지로 나눌 수 있다. Intent로 단말의 카메라 앱을 실행한 후 결과 사진을 받아 처리하기 앱 화면에 카메라 미리보기를 보여주고 직접 사진을 찍어 처리하기 우선 Intent 객체를 이용하여 카메라 앱을 실행한 뒤, 그 결과 데이터를 받아 처리하는 방법을 먼저 해보자. 카메라를 켜고, 사진을 저장할 때 외부 저장소에 데이터를 넣고 읽어들일 수 있어야 하므로 Manifest 파일에 해당 권한을 작성한다. 또한 제작한 앱에서 사진을 저장하고, 저장된 사진을 파일관리자에서 불러와야 하기 때문에 내용 제공자도 아래와 같이 추가해준다. ◎AndroidManifest.xml 다음에는 Intent 객체를 만들어 Activity를 띄..
Bitmap 객체는 메모리에 만들어지는 이미지라고 할 수 있다. 컴퓨터 내에 저장되는 대부분의 이미지 파일을 읽어 들이면 메모리에 비트맵 객체로 만들 수 있다. 그리고 비트맵 객체를 이용하면 화면에 이미지를 수정하거나 그릴 수 있다. 비트맵은 그래픽을 그릴 수 있는 메모리 공간을 제공한다. 흔히 Double Buffering 이라고 불리는 방법인데, 별도의 메모리 공간에 미리 그래픽을 그린 후 뷰가 다시 그려져야 할 필요가 있을 때, 미리 그려놓은 비트맵을 화면에 표시하는 방법이다. ◎CustomViewImage.java package com.example.customviewimage; import android.content.Context; import android.graphics.Bitmap; im..
Graphic 그리기가 가능한 요소들을 Drawable 객체로 만들어 그릴 수도 있다. Drawable 객체는 그릴 수 있는 모든 것을 의미하는데, 대표적으로 Shape, Bitmap, Picture, LayerDrawable 등이 있다. 그리기 객체의 형태로는 PNG, JPEG 이미지 등을 표현하는 Bitmap, 이미지가 자동으로 늘어나는 부분을 설정하여 사용하는 NinePatch, 도형 그리기가 가능한 Shape, 세로축의 순서에 따라 그리는 Layer 등이 있다. 그리기 메서드를 사용하면 다양한 그래픽을 그릴 수 있다는 것은 직전 포스팅에서 실습했다. 그런데 왜 굳이 Drawable 객체를 사용하여 그래픽을 그릴 필요가 있는 걸까? 그래픽을 그리는 하나의 단위를 그리기 객체로 만들어 두면 각각의 그..
직전 포스팅에서는 원을 하나 구성하여 클릭 이벤트를 구성했다면, 이번 포스팅에서는 좀 더 다양한 모양의 도형들을 그려보고 이를 위해 사용하는 메서드와 도형 효과를 주기 위해 사용하는 다양한 메서드들을 정리 해보려고 한다. 우선, 그래픽을 그릴 때 필요한 주요 클래스는 다음과 같다. 클래스 설명 Canvas 뷰의 표면에 직접 그릴 수 있도록 만들어 주는 객체로 그래픽 그리기를 위한 메서드가 정의되어 있다. Paint 그래픽 그리기를 위해 필요한 색상 등의 속성을 담고 있다. Bitmap 픽셀로 구성된 이미지로 메모리에 그래픽을 그리는 데 사용한다. Drawable 사각형, 이미지 등의 그래픽 요소가 객체로 정의되어 있다. 다음 예제는 사각형이나 원을 그리고 해당 Paint 객체에 스타일을 설정하는 예제이다..
- 인천 구월동 이탈리안 맛집
- redux-thunk
- javascript
- react-native
- 맛집
- 정보보안기사 #실기 #정리
- 이탈리안 레스토랑
- await
- react
- Async
- Promise
- 인천 구월동 맛집
- redux
- 파니노구스토
- AsyncStorage
- Total
- Today
- Yesterday