当前位置: > > > Cordova - MediaCapture插件的使用(录制视频、录音)

Cordova - MediaCapture插件的使用(录制视频、录音)

Cordova 提供了媒体捕获插件(Media Capture),它与 Camera API 相比,不仅能获取图像,还可以录视频或者录音。

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
  • 3楼
    2017-11-28 12:06
    jojojo

    请问能不能实时的获取摄像头的数据?比如要做一个扫码一样的功能,谢谢。

    站长回复

    Cordova已经有二维码、条形码扫描的插件了,比如:barcodeScanner。直接安装使用就可以了。

  • 2楼
    2017-09-09 12:36
    kkkgray

    请问怎么上传 能否转换成base64

    站长回复

    可以使用fileTransfer插件上传,没必要再转成base64,插件用法参考我的另一篇文章:Cordova - fileTransfer插件的使用详解(实现文件上传、下载)

  • 1楼
    2016-07-08 11:18
    Somnus

    请问保存地址怎么找到

    站长回复

    我代码里都有获取保存的地址,你再看看。