元玉
元玉
  • 发布:2016-05-25 11:24
  • 更新:2018-08-08 17:17
  • 阅读:5151

iOS native.js 如何调用摄像头录制视频,并且设置返回监听获取路径?

分类:Native.js

var cameraVideo = plus.ios.newObject("UIImagePickerController");
plus.ios.implements('UIImagePickerControllerDelegate'{'imagePickerController:didFinishPickingMediaWithInfo:':getUrl});//实现监听
cameraVideo.plusSetAttribute('delegate',cameraVideo);
cameraVideo.plusSetAttribute('sourceType',1);//设置为摄像头0为相册
var iosArray = plus.ios.newObject('NSMutableArray');
plus.ios.invoke(iosArray,'addObject','public.movie');
cameraVideo.plusSetAttribute('mediaTypes',iosArray);//设置为录制视频
cameraVideo.plusSetAttribute('videoMaximumDuration',10.0);//设置最大时长为10秒
var UIApplicationClass = plus.ios.importClass("UIApplication");
var UIAppObj = UIApplicationClass.sharedApplication();
var del = plus.ios.invoke(UIAppObj,"delegate");
var appWindowObj = plus.ios.invoke(del,"window");
var appRootController = plus.ios.invoke(appWindowObj,"rootViewController"); plus.ios.invoke(appRootController,"presentViewController:animated:completion:",cameraVideo,"YES",null);

设置为视频录制不起作用,监听获取不到,请问要怎么写才可以?求大神帮忙!

2016-05-25 11:24 负责人:无 分享
已邀请:
w***@sina.cn

w***@sina.cn

>plus.ios.invoke(iosArray,'addObject','public.movie');
改为plus.ios.invoke(iosArray,'addObject:','public.movie');

bigzomliao

bigzomliao - hello world

请问楼主是否实现了这个功能, 使用原生的代码怎么调用ios摄像头功能,求大神指教

2***@qq.com

2***@qq.com

代理名写错了以及delegate写错了 ,我的能走回调,但是只返回一个结果,有木有大佬解决啊

  • 8***@qq.com

    请问你的delegate是怎么写的呢?

    2018-02-24 15:49

7***@qq.com

7***@qq.com - 每天早上起来看海

//设置返回监听获取路径
function getUrl( info ){
//...
}

//调用摄像头录制视频
function getCameraiOS() {
var cameraVideo = plus.ios.newObject("UIImagePickerController");
plus.ios.implements("UIImagePickerControllerDelegate",{"imagePickerController:didFinishPickingMediaWithInfo:":getUrl});//实现监听

cameraVideo.plusSetAttribute('delegate',cameraVideo);  
cameraVideo.plusSetAttribute('sourceType',1);//设置为摄像头0为相册  
var iosArray = plus.ios.newObject('NSMutableArray');  
//plus.ios.invoke(iosArray,'addObject','public.movie');  
plus.ios.invoke(iosArray,'addObject:','public.movie');  
cameraVideo.plusSetAttribute('mediaTypes',iosArray);//设置为录制视频  
cameraVideo.plusSetAttribute('videoMaximumDuration',10.0);//设置最大时长为10秒  
var UIApplicationClass = plus.ios.importClass("UIApplication");  
var UIAppObj = UIApplicationClass.sharedApplication();  
var del = plus.ios.invoke(UIAppObj,"delegate");  
var appWindowObj = plus.ios.invoke(del,"window");  
var appRootController = plus.ios.invoke(appWindowObj,"rootViewController");  
plus.ios.invoke(appRootController,"presentViewController:animated:completion:",cameraVideo,"YES",null);  

}

  • typer

    成功调起了摄像功能,但是限制10秒没有成功。。。。

    2018-08-15 15:13

  • typer

    http://ask.dcloud.net.cn/question/49550 录制时长解决

    2018-08-15 15:31

张释

张释 - 码农

我觉得这个问题确实困扰了不少用户,而且这个问题已经两年了,希望官方团队能在百忙之中抽点时间,帮助大家解决一下。

7***@qq.com

7***@qq.com - 每天早上起来看海

5+提供的录制视频的接口只有文件形式,没有提供实时stream,也就不能或者比较麻烦为了实现录制小视屏和直播录制。
另外最好也能提供摄像机Preview的接口,用于定制美颜、滤镜等画面捕捉,现在我是自己写了两个版本实现的。

DCloud_IOS_XTY

DCloud_IOS_XTY

  • 元玉 (作者)

    但是不能限时录制,因为异步原因,导致setTimeOut()没什么作用

    2016-05-25 19:01

  • DCloud_IOS_XTY

    http://www.html5plus.org/doc/zh_cn/camera.html#plus.camera.Camera.stopVideoCapture

    2016-05-26 10:45

  • 元玉 (作者)

    计时是从进入方法开始,不是从点击录制开始,所以,如果打开摄像头,等待超过10秒后再点击录制,则无法自动关闭(假如设置10秒自动关闭的话)

    2016-05-26 12:46

  • DCloud_IOS_XTY

    可以直接调用start方法不需要点击自动开始

    2016-05-26 15:21

  • 2***@qq.com

    回复 DCloud_IOS_XTY:直接调用startVideoCapture ,也许手动点击触发才能开始录制

    2016-11-08 11:03

  • m***@worldflying.cn

    回复 DCloud_IOS_XTY:stop方法测试了,虽然能停止,但是start方法不能直接触发录像,二,进去原生的录像后,如何监听点击了start

    2017-10-16 15:46

  • m***@worldflying.cn

    回复 元玉:请问您测试成功了么?我发现cameraVideo.plusSetAttribute('videoMaximumDuration',10.0),这个值赋值不进去,大于1.00的值就是错误的,小于1.00的值就没问题

    2017-10-17 10:44

该问题目前已经被锁定, 无法添加新回复