010003 最艰难的时候请再坚持一下

来源:互联网 发布:有限元软件 编辑:程序博客网 时间:2024/04/30 15:04

上一个帖子记录了Android开发视频录像的方法,本想写成很长很长的一篇,除了记录方法,也把开发的过程记录下来。但是当技术宅附体的时候,文艺范就不在了,融合技术和心理变化很难,于是重新写一篇,记录一下自入职以来第一次自我怀疑,心生放弃,最终又坚持下来的历程。

项目是一个基于人脸技术的实时交互APP,项目以一份被表扬的很狠的产品说明书开始,一切似乎顺风顺水,按计划一个周做完了UI设计,又用了半周时间做完音频自动录制、中断、播放和分享功能。似乎一个月的工作两个周就可以搞定,最后的一步就是视频录制,本以为这是一个很容易的事情,因为从接触Android这段时间,觉得Android封装了很多功能,使用很方便。但是深入做之后发现问题并没有那么简单,正如上一篇提到基本方法,Android封装的太封闭,无法满足要求,悟出这一点用了一个星期,这段时间不断和人讨论视频录制的效率和可能存在的同步问题,一直没有实质性的开始研究方法。从当时的心理来看,对这件事是有一种恐惧感的,因为涉及到音频、视频编码,写文件以及音频和视频的同步问题,总觉得设备已经做了很多图像分析的计算,如果再加入这些很耗资源和CPU的操作,根本无法正常工作。担心变成一种恐惧,因为恐惧迟迟不迈出第一步,这可能从一开始就注定了这件事的坎坷。

当一个星期之后,实在无法逃避,只能硬着头皮开始,这个时候依然幻想Android有其他现成的解决方案,于是不断的对最基本的录制方法进行调试,最终只有一个收获,Android4.1之后可以调用硬编码器,4.3之后有视频和音频混合器。可是APP需要支持现有的大部分设备,于是4.1勉强可以接受,但4.3是不可以接受的。那么编码解决了,封装成文件成了一个问题。由于对于视频的存储方式基本处于无知状态,所以心里的畏惧感愈发强烈。直到调试了一个星期,基本没有太多进展,工作也就是试图把原来的代码通过小幅改动能完成功能。可是尝试一一失败,此时,心里已经不是恐惧,而是已经准备放弃,甚至向别人表露放弃的意愿。可是公司毕竟已经不再是学校,分配的任务就只能完成。又找方法,那个时候觉得只要找个方法跑通,然后证明效率不行,让负责人觉得这个功能不可实现,就可以堂而皇之的放弃。而由于连日的毫无进展,让自己开始产生各种怀疑,怀疑自己是否适合干这个,怀疑自己的选择是否是对的,抱怨周围的人,抱怨公司,急躁、易怒,上班以来,最严重的一次自信心受挫,就感觉在无边的黑暗中,无法挣脱了。

在经过一段时间的纠结,最后决定开始尝试用C++的库,但是查了好多例子,看到很多人用ffmpeg,但是没有一个很清晰的demo,然后又看到很多人说这个库很复杂,心里又有些排斥。然后又继续搜索,终于找到了一个可以跑通的C++库mp4v2,有位朋友提供的demo直接可以测试,而且写得很清晰。但是需要用这个东西涉及到jni和Android库的编译,跨开发语言的调用,一直都觉得很复杂。特别在这种信心极其不足的时候,这个难度被放大,又是纠结徘徊,去搜索其他方法。可是转悠了一圈,还是回来了,因为已经过去两个星期了,如果再搞不定,就不知道怎么交代了。真是天意,如果电脑上没有配置cgwin不知道到现在是什么样子。已经配置过的cgwin环境多少给了一些安慰。于是向别人请教如何写jni,开始照着例子一点点写,不了解规则,第一次做,导致过程很艰难。没有清晰的认识,因此很迷茫,就和摸石头过河一样。但是最终这条河还是被顺利趟过去。

此时,似乎最困难的那个黎明前的黑暗已经过去了,当阳光照射进来之后,一切都开始变得顺利,中间虽然又因为一个设置耽搁了半天时间,但是基本按设计的思路,做完了整套的流程,而且测试可行,可以满足要求。此时几天的沉郁之气瞬间散开,心里由于不顺滋长起来的怨气、不满和急躁瞬间消融,一切又如此美好。

这个过程前后总共3个周,从很顺利,转到一筹莫展,再到手忙脚乱,最终梳理思路,一步步做完,对知识有了一个新的补充,同时又一次验证,当最艰难的时候,也是离成功最近的时候,此时需要的是耐心和坚韧,在坚持一会,黑暗就会过去,黎明就来到了。记起有部电视剧中不断重复一句话:一切都会是好的,如果不好,那么就还没有到最后。生活、工作中很多事情都是这样,遇到这样的经历让自己进步很大,而度过这样经历的方法很简单,就是尽自己最大的努力,然后多坚持一会儿,相信下一刻奇迹就会出现。

0 0
原创粉丝点击