PhoneGap/Cordova iOS:以持续时间限制(即 30 秒)捕获视频

Posted

技术标签:

【中文标题】PhoneGap/Cordova iOS:以持续时间限制(即 30 秒)捕获视频【英文标题】:PhoneGap/Cordova iOS: capture video with a duration limit (ie. 30 seconds) 【发布时间】:2012-04-18 15:54:54 【问题描述】:

我想将视频拍摄时间限制为 30 秒。截至目前,PhoneGap 文档说明了以下 ios 实现:

“不支持持续时间参数。不能以编程方式限制录制长度。”

我确实发现这篇文章似乎为纯粹客观的 C 实现提供了解决方案:

iPhone: 5 seconds video capture

问题是:这是否可以“轻松”制作成 phonegap 插件,还是有其他原因 phonegap 无法实现此功能?如果您认为可以做到 - 任何为我指明正确方向的信息都非常感谢!谢谢:)

【问题讨论】:

我需要同样的东西......它最终将成为原生和 html5/PhoneGap 之间的区别。他们的文档 (docs.phonegap.com/en/1.0.0/…) 也很有趣。它们显示 3 个参数,对于 iOS,它们都不支持:s 【参考方案1】:

我正在尝试解决同样的问题,可能有解决方案:

capture.captureVideo() 函数返回一个 MediaFile 对象数组。这些对象有一个MediaFile.getFormatData() 方法,可以告诉您文件的持续时间,因此如果文件太长,您可以拒绝该文件...

这是我的解决方案:

 navigator.device.capture.captureVideo(function(mediaFiles) 

                mediaFiles[0].getFormatData(function(data) 

                    if(data.duration > 30) 
                        /* Tell the user the video is too long */
                     else 
                        /* Video is less than the max duration...all good */
                    
                );

        , function(error)  /* An error occured */ ,
null);

【讨论】:

如果持续时间超过我们的限制,任何解决方案可以停止视频? 根据 PhoneGap 3.1 文档,仅“限制”参数不受支持,因此可能持续时间参数现在有效:docs.phonegap.com/en/3.1.0/… 这曾经可以工作 - 现在 data.duration 始终为 0

以上是关于PhoneGap/Cordova iOS:以持续时间限制(即 30 秒)捕获视频的主要内容,如果未能解决你的问题,请参考以下文章

在 jquery mobile、phonegap/cordova 中添加一个活动指示器以显示应用程序何时忙碌

将使用相机拍摄的照片捕获并存储到本地数据库/PhoneGap/Cordova/iOS

PhoneGap/Cordova:如何使用 cookie (iOS)?

Phonegap (Cordova) iOS 按钮单击

IOS/android + phonegap/cordova框架中的返回键

Phonegap/cordova IOS横向视频