首页 技术 正文
技术 2022年11月15日
0 收藏 686 点赞 2,886 浏览 2061 个字

本文转自EasyDarwin团队成员JOHN的博客:http://blog.csdn.net/jyt0551/article/details/75730226

在我们测试EasyPusher/EasyRTMP的过程中发现有些设备预览时,明显偏暗!在稍微暗点的环境中几乎很难看清东西…额,这是怎么回事呢?又是安卓设备的兼容性问题,头疼!

好吧,停止抱怨,撸起袖子开始干.

对,我们想到了.把摄像头的scene设置成了一个比较亮的模式对吧?下面是摄像头可能支持的模式,这么多我逐一试试:

SCENE_MODE_AUTOSCENE_MODE_ACTIONSCENE_MODE_PORTRAITSCENE_MODE_LANDSCAPESCENE_MODE_NIGHTSCENE_MODE_NIGHT_PORTRAITSCENE_MODE_THEATRESCENE_MODE_BEACHSCENE_MODE_SNOWSCENE_MODE_SUNSETSCENE_MODE_STEADYPHOTOSCENE_MODE_FIREWORKSSCENE_MODE_SPORTSSCENE_MODE_PARTYSCENE_MODE_CANDLELIGHTSCENE_MODE_BARCODE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

可结果是,这么多模式可以随便设,但就是没啥用.

好吧,上网搜搜吧!我打开Chrome,敲入这几个字:

“camera preview too dark”

经搜索,发现得到的类似的问题也有不少,答案也几乎都差不多:设置曝光或者白平衡. 
比如下面这个答案:

Camera.Parameters params = mCamera.getParameters();params.setExposureCompensation(params.getMaxExposureCompensation());if(params.isAutoExposureLockSupported()) { params.setAutoExposureLock(false);}mCamera.setParameters(params);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

很开心!加进去试试吧!

结果又悲催了,没效果…

这TM就比较坑爹了

坑归坑,问题还的解决是不?只有想别的办法了,还是这个摄像头参数,我逐一注释下看看! 
好,经过我反复地注释/反注释+编译+运行后,发现居然是这个方法导致:

setPreviewFpsRange
  • 1
  • 1

因为我把这个函数注释了后,亮度就恢复了.

很(神)开(马)心(鬼)…

这明明是设置帧率的嘛,跟亮度有什么关系?

没办法,安卓就是这样子,好多二三流设备厂商做产品随心所欲,导致各种兼容性问题,拉低了整体的档次,也给程序员带来各种bug.为了适应这些设备,我们必须写一些兼容性的代码,甚至牺牲一些性能.

好吧,这篇博客写完了.我要切换到AS去咯!

EasyPusher/EasyRTMP项目地址

EasyPusher是EasyDarwin开源流媒体团队开发的一个推送流媒体音/视频流给开源流媒体服务器EasyDarwin的标准RTSP/RTP协议推送库,全平台支持(包括Windows/Linux(32 & 64),ARM各平台,Android、IOS),通过EasyPusher我们就可以避免接触到稍显复杂的RTSP/RTP/RTCP推送流程,只需要调用EasyPusher的几个API接口,就能轻松、稳定地把流媒体音视频数据推送给EasyDarwin服务器进行转发和分发,EasyPusher经过长时间的企业用户检验,稳定性非常高;

EasyPusher Github地址:https://github.com/EasyDarwin/EasyPusher

EasyRTMP是EasyDarwin团队开发的一套RTMP直播推送功能组件,内部集成了包括:基本RTMP协议、断线重连、异步推送、环形缓冲区、推送网络拥塞自动丢帧、缓冲区关键帧检索、事件回调(断线、音视频数据回调),通过EasyRTMP我们就可以避免接触到稍显复杂的RTMP推送或者客户端流程,只需要调用EasyRTMP的几个API接口,就能轻松、稳定地进行流媒体音视频数据的推送,支持市面上绝大部分的RTMP流媒体服务器,包括Red5、Ngnix_rtmp、crtmpserver等主流RTMP服务器,全平台支持:Windows、Linux、ARM(各种交叉编译工具链)、Android、iOS;

EasyRTMP Github地址:https://github.com/EasyDarwin/EasyRTMP

获取更多信息

邮件:https://www.shuzhiduo.com/A/kvJ3n8Epzg/support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295