Cordova Media-Capture 插件不工作
Cordova Media-Capture plugin is not working
我已经制作了一个简单的 cordova 测试应用程序来测试 运行 媒体捕获插件,单击录制音频、捕获图像或录制视频的按钮时没有任何反应
以下是我在cordova项目目录下安装的插件:
以下是 HTML 文件的代码
<button id = "audioCapture">AUDIO</button>
<button id = "imageCapture">IMAGE</button>
<button id = "videoCapture">VIDEO</button>
以下是JS文件的代码,其中我分别添加了音频捕获、图像捕获和视频捕获的功能。
document.getElementById("audioCapture").addEventListener("click", audioCapture);
document.getElementById("imageCapture").addEventListener("click", imageCapture);
document.getElementById("videoCapture").addEventListener("click", videoCapture);
function audioCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureAudio(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
function imageCapture() {
var options = {
limit: 1
};
navigator.device.capture.captureImage(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
function videoCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureVideo(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
Cordova 必须完全加载才能使用设备 API
为此,cordova 提供了设备就绪事件
在HTML正文中添加onload
函数
<body onload="onLoad()">
在 JS 中
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// ready to use device APIs
function onDeviceReady() {
console.log(navigator.device);
// document.getElementById("audioCapture").addEventListener("click", audioCapture);
}
我已经制作了一个简单的 cordova 测试应用程序来测试 运行 媒体捕获插件,单击录制音频、捕获图像或录制视频的按钮时没有任何反应
以下是我在cordova项目目录下安装的插件:
以下是 HTML 文件的代码
<button id = "audioCapture">AUDIO</button>
<button id = "imageCapture">IMAGE</button>
<button id = "videoCapture">VIDEO</button>
以下是JS文件的代码,其中我分别添加了音频捕获、图像捕获和视频捕获的功能。
document.getElementById("audioCapture").addEventListener("click", audioCapture);
document.getElementById("imageCapture").addEventListener("click", imageCapture);
document.getElementById("videoCapture").addEventListener("click", videoCapture);
function audioCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureAudio(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
function imageCapture() {
var options = {
limit: 1
};
navigator.device.capture.captureImage(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
function videoCapture() {
var options = {
limit: 1,
duration: 10
};
navigator.device.capture.captureVideo(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
}
function onError(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
}
}
Cordova 必须完全加载才能使用设备 API
为此,cordova 提供了设备就绪事件
在HTML正文中添加onload
函数
<body onload="onLoad()">
在 JS 中
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// ready to use device APIs
function onDeviceReady() {
console.log(navigator.device);
// document.getElementById("audioCapture").addEventListener("click", audioCapture);
}