Cordova - MediaCapture插件的使用(录制视频、录音)
作者:hangge | 2016-05-26 09:30
Cordova 提供了媒体捕获插件(Media Capture),它与 Camera API 相比,不仅能获取图像,还可以录视频或者录音。
1,插件的安装
首先我们要在“终端”中进入工程所在的目录,然后运行如下命令:
2,录音功能
下面样例,点击“开始录音”按钮后则系统会打开录音器进行录音。录音完毕后,输出录音文件的保存地址。
3,录像功能
下面样例,点击“开始录像”按钮后则系统会打开摄像头进行拍摄视频。录像完毕后,输出录像文件的保存地址。
1,插件的安装
首先我们要在“终端”中进入工程所在的目录,然后运行如下命令:
cordova plugin add cordova-plugin-media-capture
2,录音功能
下面样例,点击“开始录音”按钮后则系统会打开录音器进行录音。录音完毕后,输出录音文件的保存地址。
可以通过 duration 属性参数控制音频录制长度,如果到达这个时长也会停止录音。
<!DOCTYPE html> <html> <head> <title>Capture Audio</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" charset="utf-8"> function audioCapture() { //开始录音(最长录制时间:15秒) navigator.device.capture.captureAudio(onSuccess, onError, {duration: 15}); //录制成功 function onSuccess(mediaFiles) { var i, path, len; //遍历获取录制的文件(iOS只支持一次录制一个视频或音频) for (i = 0, len = mediaFiles.length; i < len; i += 1) { console.log(mediaFiles); path = mediaFiles[i].fullPath; alert("录制成功!\n\n" + "文件名:" + mediaFiles[i].name + "\n" + "大小:" + mediaFiles[i].size + "\n\n" + "localURL地址:" + mediaFiles[i].localURL + "\n\n" + "fullPath地址:" + path); } } //录制失败 function onError(error) { alert('录制失败!错误码:' + error.code); } } </script> </head> <body style="padding-top:50px"> <button style="font-size:23px;" onclick="audioCapture();">开始录音</button> </body> </html>
3,录像功能
下面样例,点击“开始录像”按钮后则系统会打开摄像头进行拍摄视频。录像完毕后,输出录像文件的保存地址。
可以通过 duration 属性参数控制视频录制长度,当到达这个长度也会停止录制。
<!DOCTYPE html> <html> <head> <title>Capture Video</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <script type="text/javascript" charset="utf-8" src="cordova.js"></script> <script type="text/javascript" charset="utf-8"> function videoCapture() { //开始录像(最长录制时间:15秒) navigator.device.capture.captureVideo(onSuccess, onError, {duration: 15}); //录制成功 function onSuccess(mediaFiles) { var i, path, len; //遍历获取录制的文件(iOS只支持一次录制一个视频或音频) for (i = 0, len = mediaFiles.length; i < len; i += 1) { console.log(mediaFiles); path = mediaFiles[i].fullPath; alert("录制成功!\n\n" + "文件名:" + mediaFiles[i].name + "\n" + "大小:" + mediaFiles[i].size + "\n\n" + "localURL地址:" + mediaFiles[i].localURL + "\n\n" + "fullPath地址:" + path); } } //录制失败 function onError(error) { alert('录制失败!错误码:' + error.code); } } </script> </head> <body style="padding-top:50px"> <button style="font-size:23px;" onclick="videoCapture();">开始录像</button> </body> </html>
全部评论(3)
请问能不能实时的获取摄像头的数据?比如要做一个扫码一样的功能,谢谢。
站长回复:Cordova已经有二维码、条形码扫描的插件了,比如:barcodeScanner。直接安装使用就可以了。
请问怎么上传 能否转换成base64
站长回复:可以使用fileTransfer插件上传,没必要再转成base64,插件用法参考我的另一篇文章:Cordova - fileTransfer插件的使用详解(实现文件上传、下载)
请问保存地址怎么找到
站长回复:我代码里都有获取保存的地址,你再看看。