返回 导航

Cordova

hangge.com

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

作者:hangge | 2016-05-26 09:30
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)

回到顶部