请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
显示全部楼层
175
帖子
1
勋章
5678
Y币

videoRecorder 模块教程

[复制链接]
发表于 2018-11-2 12:20:20
本帖最后由 得呤 于 2018-12-25 11:27 编辑

videoRecorder 模块封装了原生录像机的相关功能,通过本模块的 open 接口可打开摄像头的 frame ,可通过相应参数配置其位置、大小、视频质量、保存路径等信息。开发者可通过 open 一个自定义界面的 frame 覆盖在本模块上来自定义录像界面。
videoRecorder   文档链接

模块功能概览:
0,自定义录像界面
1,开始录像
2,停止录像
3,设置、获取焦距
4,设置、获取闪光灯
5,设置、获取前置后置摄像头转换
6,重新设置镜头聚焦区
7,将录制的视频保存在指定位置

模块接口如下:
open
打开录像机
setOrientation
设置摄像头方向,请在调用 start 接口之前调用
注意:
视频录制过程中涉及到两个方向: 1,录制的视频的方向; 2,open打开的视频预览区域的方向;其中1(录制的视频的方向)一般设置成当前设备的方向,开始录制(start)后便不能再改变。2(open打开的视频预览区域的方向)必须跟当前window方向(通过api.setScreenOrientation设置的方向)一致。
start
开始录像
stop
停止录像
close
关闭录像机
show
显示已隐藏的录像机
hide
隐藏录像机,并没有从内存里清除
setRect
重设拍摄区域的大小和位置
getZoom
获取录像机当前缩放数值
setZoom
设置视图大小,若为 2 则表示远视图被放大一倍
getFlashlight
获取当前闪关灯状态
setFlashlight
设置闪关灯,在 iOS 平台上,前置摄像头打开时不支持操作闪光灯
getCamera
获取当前占用的摄像头
setCamera
设置前置/后置摄像头
setFocusMode
设置当前录像机对焦模式,配合 setFocusRegion 接口使用
setFocusRegion

设置当前录像机对焦区域,需要跟 setFocusMode 接口同时使用。
若 setFocusBox 接口内 autoHide 参数为非 0 数字,则显示的聚焦提示框会在 autoHide 毫秒后自动隐藏。

若 setFocusBox 接口内 animation 参数为 true,则显示/隐藏聚焦提示框时会有动画。
setFocusBox
设置当前录像机对焦提示框
hideFocusBox
隐藏对焦提示框
addEventListener
事件监听
startCallback
开始录像后的监听,此接口只适用于android;
takePhoto
拍照
videoShot
对录制视频截图
getDeviceOrientation
获取当前设备方向



本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
0
帖子
0
勋章
2
Y币
这块是什么功能?视频播放么?
175
帖子
1
勋章
5678
Y币
samfeng2003 发表于 2018-11-11 23:59
这块是什么功能?视频播放么?

是录像的
2
帖子
0
勋章
17
Y币
魅族pro7 plus 无法录制视频,调用stop后,文件下没有生成视频,open的回调只有show会触发
var _param = null;
        if (api.systemType == "ios") {
            _param = {
                rect: {
                    x: 0,
                    y: fixStatusBarH,
                    w: $api.winWidth,
                    h: $api.dom('.main').offsetHeight
                },
                fps: 24,
                size: {
                    w: 720,
                    h: 1280
                },
                quality: "720p",
                saveToAlbum: false,
                save: {
                    path: 'fs://videoRecorder',
                    name: new Date().getTime() + '',
                    type: 'mpeg4'
                }
            }
        } else {
            _param = {
                rect: {
                    x: 0,
                    y: fixStatusBarH,
                    w: $api.winWidth,
                    // hapi.winHeight
                    h: $api.dom('.main').offsetHeight
                },
                quality: "480p",
                saveToAlbum: false,
                save: {
                    path: 'fs://videoRecorder',
                    name: 'video',
                    type: 'mpeg4'
                }
            }
        }
175
帖子
1
勋章
5678
Y币
blancezhang 发表于 2018-11-20 11:15
魅族pro7 plus 无法录制视频,调用stop后,文件下没有生成视频,open的回调只有show会触发
var _param = nu ...

复现一下全部代码
2
帖子
0
勋章
17
Y币
得呤 发表于 2018-11-20 11:20
复现一下全部代码

下面是自己的代码,用这个页面的demo也试了,一样的情况
var videoRecorder;
    var isRecord = false;
    apiready = function() {

        var fixStatusBarHeader = $api.dom('.fix-status-bar-header');
        // $api.fixStatusBar(fixStatusBarHeader);
        fixStatusBarH = $api.offset(fixStatusBarHeader).h;

        videoRecorder = api.require('videoRecorder');

        var _param = null;
        if (api.systemType == "ios") {
            _param = {
                rect: {
                    x: 0,
                    y: fixStatusBarH,
                    w: $api.winWidth,
                    h: $api.dom('.main').offsetHeight
                },
                fps: 24,
                size: {
                    w: 720,
                    h: 1280
                },
                quality: "720p",
                saveToAlbum: false,
                save: {
                    path: 'fs://videoRecorder',
                    name: new Date().getTime() + '',
                    type: 'mpeg4'
                }
            }
        } else {
            _param = {
                rect: {
                    x: 0,
                    y: fixStatusBarH,
                    w: $api.winWidth,
                    // hapi.winHeight
                    h: $api.dom('.main').offsetHeight
                },
                quality: "480p",
                saveToAlbum: false,
                save: {
                    path: 'fs://videoRecorder',
                    name: 'video',
                    type: 'mpeg4'
                }
            }
        }


        videoRecorder.open(_param, function(ret) {
            if (ret) {
              if(ret.eventType=='show'){
                // console.log('---start record');
                // videoRecorder.start({
                //     timer: 10
                // });
              }
              else{
                alert(JSON.stringify(ret));
              }
                // alert(JSON.stringify(ret));
            }
        });

        $('.video-btn').click(function() {
            if (!isRecord) {
                isRecord = true;
                $(this).attr('src', '../image/video_record_stop.png');

                videoRecorder.start({
                    // timer: 10
                });
            } else {
                isRecord = false;
                $(this).attr('src', '../image/video_record_start.png');

                videoRecorder.stop();
            }
        });
    };
175
帖子
1
勋章
5678
Y币
blancezhang 发表于 2018-11-20 11:24
下面是自己的代码,用这个页面的demo也试了,一样的情况
var videoRecorder;
    var isRecord = false;

其他手机上面会出现吗
2
帖子
0
勋章
17
Y币
得呤 发表于 2018-11-20 11:35
其他手机上面会出现吗

红米note测试没问题,确认魅族已获取全部权限,安卓7.0 flyme7.1
175
帖子
1
勋章
5678
Y币
blancezhang 发表于 2018-11-20 12:00
红米note测试没问题,确认魅族已获取全部权限,安卓7.0 flyme7.1

录屏界面能否打开呢,还是说录制的视频没有保存
2
帖子
0
勋章
17
Y币
得呤 发表于 2018-11-20 12:19
录屏界面能否打开呢,还是说录制的视频没有保存

可以打开录屏界面,删了自定义loader  重新编译了次测试包可以了。。。
123下一页
您需要登录后才可以回帖 登录

本版积分规则