电话差距+本机插件中视频捕获的局限性

Oli*_*erg 13 video android ios cordova

我正在开发针对iOS和Android平台的移动应用.该应用程序将包括:

  1. 一个相对简单的"用户登录/注册和数据库项目列表"类型的界面,由已经构建的Web服务和现有Web应用程序提供支持.

  2. 使用本机插件的视频捕获和上传功能.

我上周对PhoneGap进行了广泛的研究,并且已经确定即使考虑到有充分记录的问题和PhoneGap的限制,它也非常适合我的应用程序的第一部分.

但是,鉴于PhoneGap Capture API(org.apache.cordova.media-capture)的局限性,它不适合捕获视频以进行上传,主要是由于缺乏对视频规范的控制.(在大多数设备上,视频捕获将是巨大的高清文件,即使在Wifi上也不适合上传,当然也不会超过3g/4g.)

鉴于我的资源和时间表,我已经确定在Java和ObjC中构建本机应用程序是不切实际的,至少目前是这样.我的ObjC和Java经验很少,但如果需要,我相当自信并渴望学习这些语言.

那就是说,我正在考虑两种选择:

  1. 第一个,也可能是最合理的,是我选择了具有我现有用户群(iOS)更大市场份额的平台,吸收它并且本地化.

  2. 第二个也许是崇高的选择是,我在PhoneGap中开发了一个混合应用程序,针对两个平台,并通过使用PhoneGap的插件API为Java和ObjC构建本机插件来规避我的视频捕获能力的限制,从而缩短了开发时间.应用程序的其余部分,并仅在需要的地方使用本机代码.

我的视频捕获插件的要求如下:

  1. 完全控制录制视频的规格,最重要的是分辨率和比特率.(据推测,在Adroid SDK中使用AVFoundation等).

  2. 控制视频捕获功能的用户界面.

显然,我知道在本地api中进行开发时,这两个平台上的这些任务都是非常可能的,正如市场上现有的应用程序所显示的那样.(藤等).

我真正的问题是,有什么限制,以及通过PhoneGap的插件API扩展本机功能的问题? 在PhoneGap中几乎没有完成这种级别的本机视频捕获实现的工作示例.我发现的一个例子就是这个插件,VideoCapturePlus,尽管我还没有上班,但看起来很有希望.

我特别感兴趣的是要知道是否有人在PhoneGap中成功实现了具有这种复杂程度的本机插件,或者如果它是一个兔子洞,我希望我没有失望.

Oli*_*erg 13

我基本上已经深入到这个问题的最底层,我相信其他人都将会面对.我将分三个部分讨论这个主题:

我可以在PhoneGap中做某事(而不是在原生iOS或Android SDK中)吗?

这是一个我想象很多开发人员考虑PhoneGap框架发现自己要问的问题,我也是这样. 简短的回答是肯定的,你可能会这样.

我如何在PhoneGap中做某事?

插件! 这就是问题:Cordova(PhoneGap)的所有亮点在于它访问本机硬件功能的方式非常有限,特别是当你进入视频/照片/音频捕获时.

这就是插件的用武之地.目前有数以千计的PhoneGap插件.许多就像4行Java和Objective C一样简单,以克服PhoneGap不会做的一些简单的事情.其他是具有自己生命周期的大型项目.

就我而言,很早就很清楚,我无法使用PhoneGap中存在的视频捕获功能构建我的应用程序.也就是说,我去购买插件.在我的项目结束时,它已经使用了2个插件来扩展视频功能,还有4个插件可以用来做我需要的其他各种小事.在少数情况下,我发现的插件并没有我需要的所有东西,而且我最终贡献了一些代码.如果项目在GitHub上有效,我强烈推荐这个.

最后,有些事我想做,我找不到插件.我仍然有计划建立自己的一些,但我还没有.结论:在游戏和其他3D渲染应用程序之外,您很难找到使用PhoneGap插件无法实现的功能.

对于那些对视频捕获特别感兴趣的人来说,这些是我的项目中让我超越驼峰的2个插件:

VideoCapturePlus

视频截图

我应该在PhoneGap中构建我的应用程序吗?

当然,这个问题取决于每个开发人员,以及应用程序的目标是什么.就我而言,一个简单的应用程序,其中包括捕获和上传照片和短视频是很有可能的.在某些情况下,应用程序的参数和目标可以使本地开发成为最佳选择.

也就是说,对于资源有限且很少或没有Java或ObjC经验的大多数独立开发者或小团队,问题的答案"我应该考虑PhoneGap吗?",[我最好的Jim Halpert声音],"绝对是你应该".作为一个额外的奖励,我会这样说:在我的情况下,HTML5布局,以及用于我的应用程序的Android和iOS版本的大部分前端JS在很大程度上可重用于我的应用程序的移动网络版本.能够为这三件事维护单一代码库可以提供更高资源的组织不应忽视的效率.

  • @gsanta是的,我正在捕获视频,然后通过此插件转码文件(达到所需的质量设置):https://github.com/jbavari/cordova-plugin-video-editor.有用. (3认同)