android 录像 各种 尝试 问题 javacv

 其实我自学编程时间也比较长了,兴趣也有!也没别的爱好,大把大把的业余时间也都耗在这上面了,但不知怎的,编程能力,学习能力总是上不去,我很苦恼!

就最近俩月的android app 开发程序员的试用期工作吧。都到试用期了,自己还是主动提出离职,实在太悲催了。每天8:30上班,下午不吃不喝一直到晚上10点,

甚至更晚。天天如此!一个汽车行驶记录仪录像+回放(结合百度地图)的功能,最终怎么都没有给它做好。思来想去,我决定去培训学校去系统的培训下android 开发

反正我一直在走下坡路,那就让惨淡来的更猛烈写吧。反正世界上也找不出第二个想我一样悲催的人。


首先是mediarecorder了,都知道是录像的,界面上放一个surfaceview,我做法是oncreate的时候surfaceView.getHolder().addCallback(this);开一个线程用于录像,线程方法中Looper.prepare();Looper.loop();中间出事哈线程的handler。ui线程中也初始化handler,照理说在实现了 SurfaceHolder.Callback的 Activity类的surfaceCreated(SurfaceHolder holder)方法中给录像发送开始录像的消息,子线程接收到录像消息后,创建录像对象mediarecorder,设置摄像头,设置录像参数,prepare,start。应该就可以正常录像了,但

不知怎的,我自己两个手机测试就有好多情况,有的参数值设置大点这个手机可以,其他手机不可以等等,最最郁闷的是,魅族手机他录像预览正常,录出来花屏.....


到现在都有问题。我也尝试了新的api,它里面的demo用的是textureview做预览,也没成功,在浮动框中预览连显示都没有完成。最新api中还提供了,mediacodec还有mediarouter的demo,到现在我也没不知道怎么用,本来想尝试用他们去实现我的通过onPreviewFrame采集视频的。


最终找啊找,百度不行google,最终知道android camera 通过onPreviewFrame采集视频也是可行的,接着找啊找,找到了javacv,开源的,不容易啊。接着了解知道用的其实就是opencv+ffmpeg+audiorecorder实现的采集视频和声音。对于之前一直苦恼我的视频录像前后台切换的哇问题,仔细想其实直接使用mediarecorder就可以时间的,编一个服务,服务中创建浮动框,用于预览图像,当需要在前台activty显示预览的时候,其实就是改变浮动框的位置+预览surfaceview的大小就可以了,activity放在后面效果是一样的,而我却绕弯路了,我每次从前台activity预览切换到后台的时候我都完成了一次录像的开始和结束,在浮动框预览的时候也是一个新的文件,本来想合并视频的结果没成功。无奈下, 只能回访的时候把他们作为一个视频几个一个个的播放,不是一般的郁闷,不过现在我知道了开源的一个库做mp4合成,很好,叫mp4parser

哎!如果有老师的话,或者自己脑子活点,话也不至于弄成这样。如果有人看到,并且遇到相同的问题,我真希望他直接找到解决方案,我自己的理解这方面的知识是属于多媒体或流媒体一块的范畴不知道对不对,假设我现在有个座视频电话app的需求,看到的大神们不知能给我些什么建议,或帮助,谢谢。


哎!我现在真的很茫然,不知道继续朝着做程序员的目标走,有没有意义!


顺便贴一下百度百科 ffmpeg,opencv


FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。


OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值