media
media은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다.
라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.
media은 사진 및 동영상을 촬영하거나 갤러리에서 사진을 불러오는 기능을 가지고 있으며, Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하며,
media 을 통해 전달되는 값은 MediaInfo에 담아 전달되며 아래의 클래스 형태로 구성되어 있으며 세부 내용은 하단을 참조한다.
MediaInfo Class
public final String mediaType;
public final String path;
public final String fullpath;
public final String name;
public final String format;
public final long size;
public final long savedTime;
public final Dimension dimension;
public final int orientation;
public final long duration;
}
Dimension Class
public final int width;
public final int height;
}
MediaInfo
필드 | 필드 | 설명 | 비고 |
---|---|---|---|
mediaType | 미디어 타입
| 대소문자 구분 없음 | |
path | 앱 내 Documents 디렉토리 기준 저장된 파일의 절대 경로 | ||
fullpath | 앱 내 저장된 파일의 파일명을 포함한 전체 경로 | ||
name | 저장된 파일의 이름과 확장자 | ||
format | 파일 확장자 | ||
size | 파일 크기 | 단위 byte | |
savedTime | 파일 저장 시간 | 단위 ms | |
dimension | 해상도 | ||
width | 이미지 너비 | ||
height | 이미지 높이 | ||
orientation | 회전 상태 | 0, 90, 180, 270 | |
duration | 재생 시간 | 단위 초 | |
camera
카메라가 사용 가능한 경우 카메라로 찍어 로컬에 저장되어 있는 사진 또는 동영상을 얻을 수 있으며, 옵션을 전달하기 위해 CameraConfig 를 인자로 받아 처리하도록 구성되어 있다.
CameraConfig 클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
CameraConfig Class
public final MediaType mediaType;
public final String filename;
public final boolean overwrite;
public final boolean saveAlbum;
public final boolean allowEdit;
}
MediaType Class
PHOTO("photo"),
VIDEO("video"),
ALL("all"),
;
}
CameraConfig
필드 | 설명 | 비고 | M/O |
---|---|---|---|
mediaType | 미디어 타입
| 대소문자 구분 없음 | M |
filename | 로컬 폴더에 저장 될 파일명 | "/" 을 포함하지 않은 파일명만 입력
미디어 타입별로 설정되는 기본 파일 확장자
| O |
overwrite | 덮어쓰기 여부
| 기본값 false | O |
saveAlbum | 앨범 내 저장 여부
| 기본값 false | O |
allowEdit | 편집 기능 사용 여부
| 기본값 false | O |
Example
.mediaType(MediaType.PHOTO)
.filename("sample")
.overWrite(true)
.saveAlbum(true)
.allowEdit(true)
.build()
DAPMedia.camera(activity, config, {
// TODO
}) {
// TODO
}
.mediaType(MediaType.PHOTO)
.filename("sample")
.overWrite(true)
.saveAlbum(true)
.allowEdit(true)
.build();
DAPMedia.camera(MainActivity.this, config, reust->{
// TODO
}, error -> {
// TODO
});
save
로컬 디렉토리 내의 미디어 파일을 앨범으로 저장 한다
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
path | 앨범으로 저장할 미디어 파일의 경로 | "/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로 | M |
Example
// TOD
}) {
// TODO
}
// TODO
}, error -> {
// TODO
});
getFiles
지정 위치의 디렉토리와 미디어 타입에 해당하는 파일을 검색해 관련 정보를 MediaFiles 형태로 전달 하며, 그 세부 내용은 하단을 참조 한다.
MediaFiles Class
private final List<String> dirs;
private final List<MediaInfo> files;
}
MediaFiles
필드 | 설명 | 비고 |
---|---|---|
dirs | 하위 디렉토리 전체 경로 목록 | |
files | 미디어 파일 정보 목록 | |
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
mediaType | 미디어 타입
| 대소문자 구분 없음 | M |
path | 정보를 가져 올 디렉토리 경로 | "/" 를 시작으로 앱 내 Documents 디렉토리 기준 절대 경로, | O |
Example
// TOD
}) {
// TODO
}
// TODO
}, error -> {
// TODO
});
getInfo
로컬 디렉토리 내의 미디어 파일의 상세 정보를 전달 한다.
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
path | 미디어 파일의 경로 | "/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로 | M |
Example
// TOD
}) {
// TODO
}
// TODO
}, error -> {
// TODO
});
picker
앨범 및 앱내의 미디어 파일을 선택할 수 있다. 이때 옵션을 통해 최대 선택 개수를 지정하거나 이미지나 동영상 파일들만 선택할 수 있도록 지정할 수도 있으며, 옵션을 전달하기 위해 PickerConfig를 인자로 받아 처리하도록 구성되어 있다.
PickerConfig클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
PickerConfig Class
public final MediaType mediaType;
public final PathType pathType;
public final int maxCount;
public final int column;
}
MediaType Class
PHOTO("photo"),
VIDEO("video"),
ALL("all"),
;
}
PathType Class
ALBUM("album"),
LOCAL("local"),
;
}
PickerConfig
필드 | 설명 | 비고 | M/O |
---|---|---|---|
mediaType | 미디어 타입
| 대소문자 구분 없음 | M |
pathType | 미디어 접근 경로 타입
| 대소문자 구분 없음 | M |
maxCount | 최대 미디어 선택 개수 (최대 : 30) | 기본값 1 | O |
column | 미디어 선택 화면 컬럼 수 (최대 : 10) | 기본값 3 | O |
Example
.mediaType(MediaType.ALL)
.pathType(PathType.LOCAL)
.maxCount(1)
.column(3)
.build()
DAPMedia.picker(activity, config, {
// TODO
}) {
// TODO
}
.mediaType(MediaType.ALL)
.pathType(PathType.LOCAL)
.maxCount(1)
.column(3)
.build();
DAPMedia.picker(activity, config, reust -> {
// TODO
}, error -> {
// TODO
});
crop
이미지를 회전하거나 영역 비율을 선택 및 조절하여 원하는 영역으로 자른다.
이때 옵션을 통해 앨범 및 앱내의 미디어 파일을 선택할 수 있으며, 옵션을 전달하기 위해 CropConfig를 인자로 받아 처리하도록 구성되어 있다.
CropConfig클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
CropConfig Class
public final String filename;
public final PathType pathType;
public final String path;
public final boolean overwrite;
public final boolean saveAlbum;
public final Format format;
public final int quality;
}
PathType Class
ALBUM("album"),
LOCAL("local"),
;
}
Format Class
JPG("jpg"),
PNG("png"),
;
}
CropConfig
필드 | 설명 | 비고 | M/O |
---|---|---|---|
filename | 로컬 폴더에 저장 될 파일명 | "/" 을 포함하지 않은 파일명만 입력
| O |
pathType | 미디어 접근 경로 타입
| 대소문자 구분 없음 | M |
path | 미디어 접근 경로 | 미디어 경로 타입이 album 으로 선택 된 경우
미디어 경로 타입이 local 인 경우
| O |
overwrite | 덮어쓰기 여부
| 기본값 false | O |
saveAlbum | 앨범 내 저장 여부
| 기본값 false | O |
format | 이미지 파일 포멧
| 기본값 jpg | O |
Example
.filename("sample")
.pathType(PathType.LOCAL)
.overWrite(false)
.saveAlbum(false)
.format(Format.JPG)
.quality(100)
.build()
DAPMedia.crop(activity, config, {
// TODO
}) {
// TODO
}
.filename("sample")
.pathType(PathType.LOCAL)
.overWrite(false)
.saveAlbum(false)
.format(Format.JPG)
.quality(100)
.build();
DAPMedia.crop(activity, config, reust -> {
// TODO
}, error -> {
// TODO
});
remove
로컬 디렉토리 내의 미디어 파일을 삭제 한다.
options
필드 | 설명 | 비고 | M/O |
---|---|---|---|
paths | 삭제 할 미디어 파일의 경로 목록 | "/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로 | M |
Example
paths.add("/media/sample.jpg")
paths.add("/media/sample(1).jpg")
DAPMedia.remove(activity, paths, {
// TOD
}) {
// TODO
}
paths.add("/media/sample.jpg");
paths.add("/media/sample(1).jpg");
DAPMedia.remove(activity, paths, reust -> {
// TODO
}, error -> {
// TODO
});
optimize
이미지의 해상도 및 품질을 최적화 한다. 이때 옵션을 통해 앨범 및 앱내의 미디어 파일을 선택할 수 있으며, 옵션을 전달하기 위해 OptimizeConfig를 인자로 받아 처리하도록 구성되어 있다.
OptimizeConfig클래스 정보와 각각의 변수 정보는 하단에 표를 참고 한다.
OptimizeConfig Class
public final String filename;
public final PathType pathType;
public final String path;
public final boolean overwrite;
public final boolean saveAlbum;
public final Dimension dimension;
public final Format format;
public final int quality;
}
PathType Class
ALBUM("album"),
LOCAL("local"),
;
}
Format Class
JPG("jpg"),
PNG("png"),
;
}
OptimizeConfig
필드 | 필드 | 설명 | 비고 | M/O |
---|---|---|---|---|
filename | 로컬 폴더에 저장 될 파일명 | "/" 을 포함하지 않은 파일명만 입력
| O | |
pathType | 미디어 접근 경로 타입
| 대소문자 구분 없음 | M | |
path | 미디어 접근 경로 | 미디어 경로 타입이 album 으로 선택 된 경우
미디어 경로 타입이 local 인 경우
| O | |
overwrite | 덮어쓰기 여부
| 기본값 false | O | |
saveAlbum | 앨범 내 저장 여부
| 기본값 false | O | |
dimension | 해상도 | 단위 픽셀 | O | |
width | 이미지 너비 | 1~2147483647 범위의 정수 값 | ||
height | 이미지 높이 | 1~2147483647 범위의 정수 값 | ||
format | 이미지 파일 포멧
| 기본값 jpg | O | |
quality | 이미지 품질 | 파일 포맷이 JPG인 경우에만 품질 설정 가능 | O | |
Example
.filename("sample")
.pathType(PathType.LOCAL)
.overWrite(false)
.saveAlbum(false)
.format(Format.JPG)
.dimension(Dimension(600, 480))
.quality(100)
.build()
DAPMedia.optimize(activity, config, {
// TOD
}) {
// TODO
}
.filename("sample")
.pathType(PathType.LOCAL)
.overWrite(false)
.saveAlbum(false)
.format(Format.JPG)
.dimension(new Dimension(600, 480))
.quality(100)
.build();
DAPMedia.optimize(activity, config, reust -> {
// TODO
}, error -> {
// TODO
});
Error Code
Code | Cause | Comment | |
---|---|---|---|
E12900 | 파라메터 값이 잘못 되어 있을 경우 | ||
E12901 | 전달된 액션 값이 알 수 없는 액션일 경우 | ||
E12902 | 미디어 타입 정보가 null 이거나 빈 값인 경우 | ||
E12903 | 파일명 정보가 문자열이 아닌 경우 | ||
E12904 | 덮어쓰기 여부 정보가 boolean 타입이 아닌 경우 | ||
E12905 | 앨범 내 저장 여부 정보가 boolean 타입이 아닌 경우 | ||
E12906 | 편집 모드 사용 여부 정보가 boolean타입이 아닌 경우 | ||
E12907 | 경로 정보가 null 이거나 빈 값인 경우, | ||
E12908 | 접근할 미디어 경로 타입 정보가 null 이거나 빈 값인 경우 | ||
E12909 | 최대 미디어 선택 개수 정보가 1~30 범위의 정수 값이 아닌 경우 | ||
E12910 | 미디어 선택 화면 컬럼 수 정보 1~10 범위의 정수 값이 아닌 경우 | ||
E12911 | 이미지 파일 포맷 정보가 null 이거나 빈 값인 경우 | ||
E12912 | 이미지 품질 정보가 1100 범위의 정수 값이 아닌 경우 | ||
E12913 | 이미지 리사이즈를 위한 dimension 정보의 width, height 값이 1~2147483647 범위의 정수 값이 아닌 경우 | ||
E12950 | 실행 중 오류가 발생했을 때 | ||
E12951 | 이미지 파일 편집 중 오류가 발생 되었을 경우 | ||
E12952 | 비디오 파일 저장 중 오류가 발생 되었을 경우 | ||
E12953 | 이미지 파일 사이즈 조절 중 오류가 발생 되었을 경우 | ||
E12954 | 이미지 파일 품질 조절 중 오류가 발생 되었을 경우 | ||
E12955 | 앨범으로 저장 중 오류가 발생 되었을 경우 | ||
E12956 | 미디어 저장 중 오류가 발생 되었을 경우 | ||
E12957 | 이미지 정보 가져오는 중 오류가 발생 되었을 경우 | ||
E12958 | 비디오 정보 가져오는 중 오류가 발생 되었을 경우 | ||
E12959 | 파일이 존재하지 않는 경우 | ||
E12960 | 경로가 존재하지 않는 경우 | ||
E12961 | 사용자가 실행을 취소 하였을 경우 | ||
E12962 | 사진 촬영 중 오류가 발생 되었을 경우 | ||
E12963 | 영상 녹화 중 오류가 발생 되었을 경우 | ||
E12964 | 이미지 처리 중 오류가 발생 되었을 경우 | ||
E12999 | 알 수 없는 오류가 발생 되었을 경우 | ||