PhoneGap API中文帮助文档——Capture (采集)
提供对设备音频、图像和视频采集功能的访问。
对象:
Capture
CaptureAudioOptions
CaptureImageOptions
CaptureVideoOptions
CaptureCB
CaptureErrorCB
ConfigurationData
MediaFile
MediaFileData
方法:
capture.captureAudio
capture.captureImage
capture.captureVideo
MediaFile.getFormatData
范围:
capture对象被分配给navigator.device对象,因此作用域为全局范围。
简单的范例:
// 全局范围的capture对象
var capture = navigator.device.capture;
复制代码
属性:
supportedAudioModes:当前设备所支持的音频录制格式。(ConfigurationData[] 类型)
supportedImageModes:当前设备所支持的拍摄图像尺寸及格式。(ConfigurationData[] 类型)
supportedVideoModes:当前设备所支持的拍摄视频分辨率及格式。(ConfigurationData[] 类型)
方法:
capture.captureAudio:启动设备录制音频剪辑的音频录制应用程序。
capture.captureImage:启动设备拍摄照片的摄像头应用程序。
capture.captureVideo:启动设备拍摄视频的视频录制应用程序。
支持的平台:
Android
BlackBerry WebWorks (OS 5.0或更高版本)
iOS
capture.captureAudio
启动录音机应用程序并返回采集的音频剪辑文件。
navigator.device.capture.captureAudio(CaptureCB captureSuccess,
CaptureErrorCB captureError, [CaptureAudioOptions options] );
复制代码
说明:
该方法通过设备默认的音频录制应用程序开始一个异步操作以采集音频录制。该操作允许设备用户在一个会话中同时采集多个录音。
当用户退出音频录制应用程序,或系统到达CaptureAudioOptions的limit参数所定义的最大录制数时都会停止采集操作。如果没有设置limit参数的值,则使用其默认值1,也就是说当用户录制好一个音频剪辑后采集操作就会终止。
当采集操作结束后,系统会调用CaptureCB回调函数,传递一个包含所有采集到的音频剪辑文件的MediaFile对象数组。如果用户在完成一个音频剪辑采集之前终止采集操作,系统会调用CaptureErrorCB回调函数,并传递一个包含CaptureError.CAPTURE_NO_MEDIA_FILES错误代码的CaptureError对象。
支持的平台:
Android
BlackBerry WebWorks (OS 5.0或更高版本)
iOS
简单的范例:
// 采集操作成功完成后的回调函数
var captureSuccess = function(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
// 对文件进行感兴趣的操作
}
};
// 采集操作出错后的回调函数
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// 开始采集音频
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});
复制代码完整的范例:
<!DOCTYPE html>
<html>
<head>
<title>Capture Audio</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// 采集操作成功完成后的回调函数
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// 采集操作出错后的回调函数
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
// “Capture Audio”按钮点击事件触发函数
function captureAudio() {
// 启动设备的音频录制应用程序,
// 允许用户最多采集2个音频剪辑
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit: 2});
}
// 上传文件到服务器
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.c
补充:移动开发 , 其他 ,