media


Information

media는 4.16.29 버전 이상 부터 제공되며 해당 라이브러리를 추가하여 사용해야 된다.

media는 외부 앱을 실행 시키기 위한 기능을 가지고 있으며, Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다.
확장 프레임워크 파일을 추가하여 사용할 수 있으며 추가 방법은 iOS 개발 가이드 의 내용을 참조한다.


camera

사진, 동영상 촬영을 수행하여 얻은 사진, 동영상 파일을 앱 내 설정된 미디어 기본 로컬 폴더 경로에 저장한다.

options

필드설명비고M/O
mediaType미디어 타입
  • photo : 사진
  • video : 동영상
대소문자 구분 없음M
filename로컬 폴더에 저장 될 파일명

"/" 을 포함하지 않은 파일명만 입력
파일명 지정하지 않은 경우, 미디어 타입별로 설정되는 파일명 기본값 (시간(H) : 24시간제)

  • photo

    -  photo_현재날짜(yyyyMMdd)_현재시간(HHmmss)

  • video

    -  video_현재날짜(yyyyMMdd)_현재시간(HHmmss) 

미디어 타입별로 설정되는 기본 파일 확장자

  • photo : jpg
  • video : mp4
O
overwrite덮어쓰기 여부
  • true : 덮어쓰기 
  • false : "기존 파일명 (중복수)"으로 적용
기본값 falseO
saveAlbum앨범 내 저장 여부
  • true : 라이브러리 앨범 내에도 저장 
  • false : 미디어 저장 기본 로컬 디렉토리 내에만 저장
기본값 falseO
allowEdit편집 기능 사용 여부
  • true : 편집 기능 활성화

    - photo : 촬영된 사진 회전 및 정방형 사이즈로 자르기 기능
    - video : 촬영 영상 구간 편집 기능

  • false : 편집 기능 비활성화
기본값 falseO
    

Example

var infoParam = DAPMediaCameraParam()
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA
infoParam.filename = "test"
infoParam.overwrite = false
infoParam.saveAlbum = true
infoParam.allowEdit = true
DAPMedia.camera(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaCameraParam *infoParam = [DAPMediaCameraParam new];
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA;
infoParam.filename = @"logo";
infoParam.overwrite = NO;
infoParam.saveAlbum = YES;
infoParam.allowEdit = YES;
[DAPMedia camera:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

save

로컬 디렉토리 내의 미디어 파일을 앨범으로 저장 한다

options

필드설명비고M/O
path앨범으로 저장할 미디어 파일의 경로"/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로M
    

Example

var infoParam = DAPMediaSaveParam()
infoParam.path = "/media/sample.jpg"

DAPMedia.save(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaSaveParam *infoParam = [DAPMediaSaveParam new];
infoParam.path = @"/media/sample.jpg";

[DAPMedia save:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

getFiles

특정 경로의 디렉토리 리스트와 파일 정보 리스트를 출력한다. 

options

필드설명비고M/O
mediaType미디어 타입
  • photo : 사진
  • video : 동영상
대소문자 구분 없음M
path정보를 가져 올 디렉토리 경로

"/" 를 시작으로 앱 내 Documents 디렉토리 기준 절대 경로,
값을 설정하지 않은 경우, Documents 디렉토리 내의 정보

O
    

Example

var infoParam = DAPMediaGetFilesParam()
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA
infoParam.path = "/media/sample.jpg"

DAPMedia.getFiles(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaGetFilesParam *infoParam = [DAPMediaGetFilesParam new];
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA;
infoParam.path = @"/media/sample.jpg";

[DAPMedia getFiles:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

getInfo

로컬 디렉토리 내의 미디어 파일의 상세 정보를 전달 한다.

options

필드설명비고M/O
path미디어 파일의 경로"/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로M
    

Example

var infoParam = DAPMediaGetFilesParam()
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA
infoParam.path = "/media/sample.jpg"

DAPMedia.getInfo(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaGetFilesParam *infoParam = [DAPMediaGetFilesParam new];
infoParam.mediaType = PHOTO_MEDIA_TYPE_CAMERA;
infoParam.path = @"/media/sample.jpg";

[DAPMedia getInfo:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

picker

앨범 및 앱 내 미디어 파일을 선택하여 정보를 가져온다.
이때, 옵션을 통해 최대 선택 개수를 지정하거나 이미지나 동영상 파일들만 선택할 수 있도록 지정할 수도 있다.

options

필드설명비고M/O
mediaType미디어 타입
  • photo : 사진
  • video : 동영상
대소문자 구분 없음M
pathType미디어 접근 경로 타입
  • album : 앨범
  • local : 로컬 디렉토리
대소문자 구분 없음M
maxCount최대 미디어 선택 개수 (최대 : 30)기본값 1O
column미디어 선택 화면 컬럼 수 (최대 : 10)기본값 3O
    

Example

var infoParam = DAPMediaCropParam()
infoParam.filename = "cropImg"
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = "/media"
infoParam.overwrite = false
infoParam.saveAlbum = true
infoParam.allowEdit = true
DAPMedia.crop(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaCropParam *infoParam = [DAPMediaCropParam new];
infoParam.filename = @"cropImg";
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = @"/media";
infoParam.overwrite = NO;
infoParam.saveAlbum = YES;
infoParam.allowEdit = YES;
[DAPMedia crop:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

crop

이미지를 회전하거나 영역 비율을 선택 및 조절하여 원하는 영역으로 자른다.

Information

제공 비율

  • 원본 이미지 비율
  • 자유
  • 1:1(시작 값)
  • 3:4
  • 4:3
  • 9:16
  • 16:9

options

필드필드설명비고M/O
filename 로컬 폴더에 저장 될 파일명

"/" 을 포함하지 않은 파일명만 입력
파일명 지정하지 않은 경우, 미디어 타입별로 설정되는 파일명 기본값 (시간(H) : 24시간제)

  • optimize_photo_현재날짜(yyyyMMdd)_현재시간(HHmmss)
O
pathType 미디어 접근 경로 타입
  • album : 앨범
  • local : 로컬 디렉토리
대소문자 구분 없음M
path 미디어 접근 경로

미디어 경로 타입이 album 으로 선택 된 경우

  • 설정 된 경로는 무시

미디어 경로 타입이 local 인 경우

  • 경로만 설정 된 경우

    - 설정 된 디렉토리 및 하위 디렉토리의 모든 이미지 선택 화면 표시

  • 파일명이 포함 된 경로인 경우

    - 설정 된 파일의 이미지 표시

  • 값이 없는 경우

    - 앱내 로컬 디렉토리 및 하위 하위 디렉토리의 모든 이미지 선택 화면 표시

O
overwrite 덮어쓰기 여부
  • true : 덮어쓰기 
  • false : "기존 파일명 (중복수)"으로 적용
기본값 falseO
saveAlbum 앨범 내 저장 여부
  • true : 라이브러리 앨범 내에도 저장 
  • false : 미디어 저장 기본 로컬 디렉토리 내에만 저장
기본값 falseO
dimension 해상도

단위 픽셀
설정하지 않으면 실제 Pixel 크기 기준으로 생성

width이미지 너비1~2147483647 범위의 정수 값 
height이미지 높이1~2147483647 범위의 정수 값 
format 이미지 파일 포멧
  • png
  • jpg
기본값 jpgO
quality 이미지 품질

파일 포맷이 JPG인 경우에만 품질 설정 가능
1~100 사이의 정수값
기본값 100

O
    

Example

var infoParam = DAPMediaCropParam()
infoParam.filename = "cropImg"
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = "/media"
infoParam.overwrite = false
infoParam.saveAlbum = true
infoParam.allowEdit = true
DAPMedia.crop(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaCropParam *infoParam = [DAPMediaCropParam new];
infoParam.filename = @"cropImg";
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = @"/media";
infoParam.overwrite = NO;
infoParam.saveAlbum = YES;
infoParam.allowEdit = YES;
[DAPMedia crop:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

remove

로컬 디렉토리 내의 미디어 파일을 삭제 한다.

options

필드설명비고M/O
paths삭제 할 미디어 파일의 경로 목록"/" 를 시작으로 파일명과 확장자를 포함한 한 앱 내 Documents 디렉토리 기준 절대 경로M
    

Example

var infoParam = DAPMediaRemoveParam()
infoParam.paths = ["/media/sample.jpg", "/media/sample2.jpg"]

DAPMedia.remove(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaRemoveParam *infoParam = [DAPMediaRemoveParam new];
infoParam.paths = [@"/media/sample.jpg", @"/media/sample2.jpg"];

[DAPMedia remove:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

optimize

이미지의 해상도 및 품질을 최적화 한다. 이때 옵션을 통해 앨범 및 앱내의 미디어 파일을 선택할 수 있으며,  옵션을 전달하기 위해 OptimizeConfig를 인자로 받아 처리하도록 구성되어 있다.

options

필드필드설명비고M/O
filename 로컬 폴더에 저장 될 파일명

"/" 을 포함하지 않은 파일명만 입력
파일명 지정하지 않은 경우, 미디어 타입별로 설정되는 파일명 기본값 (시간(H) : 24시간제)

  • optimize_photo_현재날짜(yyyyMMdd)_현재시간(HHmmss)
O
pathType 미디어 접근 경로 타입
  • album : 앨범
  • local : 로컬 디렉토리
대소문자 구분 없음M
path 미디어 접근 경로

미디어 경로 타입이 album 으로 선택 된 경우

  • 설정 된 경로는 무시

미디어 경로 타입이 local 인 경우

  • 경로만 설정 된 경우

    - 설정 된 디렉토리 및 하위 디렉토리의 모든 이미지 선택 화면 표시

  • 파일명이 포함 된 경로인 경우

    - 설정 된 파일의 이미지 표시

  • 값이 없는 경우

    - 앱내 로컬 디렉토리 및 하위 하위 디렉토리의 모든 이미지 선택 화면 표시

O
overwrite 덮어쓰기 여부
  • true : 덮어쓰기 
  • false : "기존 파일명 (중복수)"으로 적용
기본값 falseO
saveAlbum 앨범 내 저장 여부
  • true : 라이브러리 앨범 내에도 저장 
  • false : 미디어 저장 기본 로컬 디렉토리 내에만 저장
기본값 falseO
dimension 해상도

단위 픽셀
설정하지 않으면 실제 Pixel 크기 기준으로 생성

width이미지 너비1~2147483647 범위의 정수 값 
height이미지 높이1~2147483647 범위의 정수 값 
format 이미지 파일 포멧
  • png
  • jpg
기본값 jpgO
quality 이미지 품질

파일 포맷이 JPG인 경우에만 품질 설정 가능
1~100 사이의 정수값
기본값 100

O
    

Example

var infoParam = DAPMediaOptimizeParam()
infoParam.filename = "newImg"
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = "/media"
infoParam.overwrite = false
infoParam.saveAlbum = true
infoParam.allowEdit = true
DAPMedia.optimize(infoParam, completion: { resultDict in
   // TODO
}, failure: { error in
   // TODO
})
DAPMediaOptimizeParam *infoParam = [DAPMediaOptimizeParam new];
infoParam.filename = @"newImg";
infoParam.pathType = PHOTO_PATH_TYPE_ALBUM
infoParam.path = @"/media";
infoParam.overwrite = NO;
infoParam.saveAlbum = YES;
infoParam.allowEdit = YES;
[DAPMedia optimize:infoParam completion:^(NSDictionary *resultDict) {
   // TODO
} failure:^(NSError *error) {
   // TODO
}];

Error Code

CodeCauseComment 
E12900파라메터 값이 잘못 되어 있을 경우 
E12901전달된 액션 값이 알 수 없는 액션일 경우 
E12902

미디어 타입 정보가 null 이거나 빈 값인 경우
값이 photo, video, all 외 다른 값인 경우

 
E12903파일명 정보가 문자열이 아닌 경우 
E12904덮어쓰기 여부 정보가 boolean 타입이 아닌 경우 
E12905앨범 내 저장 여부 정보가 boolean 타입이 아닌 경우 
E12906편집 모드 사용 여부 정보가 boolean타입이 아닌 경우 
E12907경로 정보가 null 이거나 빈 값인 경우,  
E12908

접근할 미디어 경로 타입 정보가 null 이거나 빈 값인 경우
값이 album, local외 다른 값인 경우

 
E12909최대 미디어 선택 개수 정보가 1~30 범위의 정수 값이 아닌 경우 
E12910미디어 선택 화면 컬럼 수 정보 1~10 범위의 정수 값이 아닌 경우 
E12911

이미지 파일 포맷 정보가 null 이거나 빈 값인 경우
값이 jpg, png 외 다른 값인 경우

 
E12912이미지 품질 정보가 1100 범위의 정수 값이 아닌 경우 
E12913이미지 리사이즈를 위한 dimension 정보의 width, height 값이 1~2147483647 범위의 정수 값이 아닌 경우 
E12950실행 중 오류가 발생했을 때 
E12951이미지 파일 편집 중 오류가 발생 되었을 경우 
E12952비디오 파일 저장 중 오류가 발생 되었을 경우 
E12953이미지 파일 사이즈 조절 중 오류가 발생 되었을 경우 
E12954이미지 파일 품질 조절 중 오류가 발생 되었을 경우 
E12955앨범으로 저장 중 오류가 발생 되었을 경우 
E12956미디어 저장 중 오류가 발생 되었을 경우 
E12957이미지 정보 가져오는 중 오류가 발생 되었을 경우 
E12958비디오 정보 가져오는 중 오류가 발생 되었을 경우 
E12959파일이 존재하지 않는 경우 
E12960경로가 존재하지 않는 경우 
E12961사용자가 실행을 취소 하였을 경우 
E12962사진 촬영 중 오류가 발생 되었을 경우 
E12963영상 녹화 중 오류가 발생 되었을 경우 
E12964이미지 처리 중 오류가 발생 되었을 경우 
E12999알 수 없는 오류가 발생 되었을 경우