// The global capture object
var capture = navigator.device.capture;
미디어 파일의 포맷 정보를 수집하는 API에 대해 제한이 있어, 일부 MediaFileData 속성을 지원하지 않는다.
MediaFileData : codecs, bitrate 을 지원하지 않는다.
duration 파라미터를 지원하지 않는다.
비디오 촬영 크기를 프로그램적으로 제한할 수 없다.
mode 파라미터를 지원하지 않는다.
비디오의 크기와 파라미터를 프로그램적으로 정의할 수 없다.
비디오는 3GPP (videp/3gpp) 로 기본적으로 촬영된다.
미디어 파일의 포맷 정보를 수집하는 API에 대해 제한이 있어, 일부 MediaFileData 속성을 지원하지 않는다.
MediaFileData : codecs을 지원하지 않는다.
MediaFileData : bitrate 는 iOS4 에서만 지원한다.
limit 파라미터는 지원하지 않는다.
한 번에 하나의 비디오 촬영만 할 수 있다.
duration 파라미터를 지원하지 않는다.
비디오 촬영 크기를 프로그램적으로 제한할 수 없다.
mode 파라미터를 지원하지 않는다.
비디오의 크기와 파라미터를 프로그램적으로 정의할 수 없다.
비디오는 MOV (video/quicktime) 로 기본적으로 촬영된다.
<plugin name="Capture" value="org.apache.cordova.Capture"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<key>Plugins</key>
<dict>
<key>Capture</key>
<string>CDVCapture</string>
</dict>
디바이스에서 제공하는 오디오 녹음 포맷.
ConfigurationData[]
디바이스에서 제공하는 이미지 사이즈와 포맷
ConfigurationData[]
디바이스에서 제공하는 비디오 포맷
ConfigurationData[]
navigator.device.capture.captureAudio(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureAudioOptions options]
);
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start audio capture
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});
navigator.device.capture.captureImage(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions options]
);
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start image capture
navigator.device.capture.captureImage(captureSuccess, captureError, {limit:2});
navigator.device.capture.captureVideo(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureVideoOptions options]
);
// capture callback
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start video capture
navigator.device.capture.captureVideo(captureSuccess, captureError, {limit:2});
mediaFile.getFormatData(
MediaFileDataSuccessCB successCallback,
[MediaFileDataErrorCB errorCallback]
);
var options = { limit: 3, duration: 10 };
navigator.device.capture.captureAudio(captureSuccess, captureError, options);
유형 | 설명 |
limit | 한번에 녹음할 수 있는 횟수를 정의한다. |
duration | 녹음할 경우, 최대 녹음시간을 정의한다. |
mode | capture.supportedAudioModes 에서 지원하는 오디오 모드중 하나를 지정한다. |
navigator.device.capture.captureImage(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions options]
);
유형 | 설명 |
limit | 한번에 사진 촬영할 수 있는 횟수를 정의한다. |
mode | capture.supportedImageModes 에서 지원하는 이미지 모드중 하나를 지정한다. |
var options = { limit: 3 };
navigator.device.capture.captureVideo(captureSuccess, captureError, options);
유형 | 설명 |
limit | 한번에 촬영할 수 있는 횟수를 정의한다. |
duration | 촬영할 경우, 최대 촬영시간을 정의한다. |
mode | capture.supportedVideoModes 에서 지원하는 비디오 모드중 하나를 지정한다 |
유형 | 설명 |
CaptureError.CAPTURE_INTERNAL_ERR | 카메라가 사진을 찍거나 마이크로폰이 녹음을 하는 데 실패했을 경우의 오류. |
CaptureError.CAPTURE_APPLICATION_BUSY | 카메라 또는 녹음 프로그램을 다른 서비스로 인해 호출할 수 없는 경우의 오류. |
CaptureError.CAPTURE_INVALID_ARGUMENT | 옵션의 설정이 올바르지 않을 경우 phoneGap API에서 발생하는 오류. |
CaptureError.CAPTURE_NO_MEDIA_FILES | 사용자가 촬영을 중단하고 임의로 빠져나왔을 때 발생하는 오류. |
CaptureError.CAPTURE_NOT_SUPPORTED | 요청한 미디어 촬영이 지원하지 않을 때 발생하는 오류. |
function captureSuccess( MediaFile[] mediaFiles ) { ... };
function captureSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// do something interesting with the file
}
};
function captureError( CaptureError error ) { ... };
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
디바이스에서 지원하는 캡처 속성들을 기록할 수 있는 객체.
video/3gpp, video/quicktime, image/jpeg, audio/amr, audio/wav
var imageModes = navigator.device.capture.supportedImageModes;
var width = 0;
var selectedmode;
for each (var mode in imageModes) {
if (mode.width > width) {
width = mode.width;
selectedmode = mode;
}
}
유형 | 설명 | 타입 |
type | 미디어 유형을 ASCII 코드로 인코딩한 소문자 문자열. | DOMString |
height | 이미지나 비디오의 높이(pixel)를 정의하며, 오디오의 경우 0으로 처리한다. | Number |
width | 이미지나 비디오의 너비(pixel)를 정의하며, 오디오의 경우 0으로 처리한다. | Number |
유형 | 설명 | 타입 |
name | 경로를 제외한 파일명. | DOMString |
fullPath | 파일명을 제외한 전체경로. | DOMString |
type | 미디어 파일의 mime type. | DOMString |
lastModifiedDate | 파일의 최종수정날짜. | Date |
size | byte 단위를 가지는 파일의 크기. | Number |
유형 | Android | iOS | 비고 |
height | X | X | 항상, null이다. |
bitrate | X | O | iOS4에서만 오디오를 유일하게 지원한다. 이미지나 비디오는 항상 0이다. |
height | O | O | 이미지와 비디오 파일에서만 지원한다. |
width | O | O | 이미지와 비디오 파일에서만 지원한다. |
duration | O | O | 이미지와 비디오 파일에서만 지원한다. |