如何解决Cordova Media-Capture 插件不起作用
我制作了一个简单的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,'Capture Error');
}
}
function videoCapture() {
var options = {
limit: 1,duration: 10
};
navigator.device.capture.captureVideo(onSuccess,'Capture Error');
}
}
解决方法
Cordova 必须完全加载才能使用设备 API
为此,cordova 提供了 deviceready 事件
在 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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。