Android 声网 Bug 修改记录: 视频方向不对, Camera.getParameters() 空指针

1.集成声网的音视频服务,做测试的时候发现,采集的视频方向一直是90°偏差怎么都转不过来。

自习查看文档后发现:

用来显示视频的SurfaceView 是直接写在布局里的而不是 声网提供的构造方法:
文档原文 描述

创建渲染视图

public static SurfaceView CreateRendererView (Context context)

该方法创建视频渲染视图,返回SurfaceView的类型。
view的操作和布局由App管理, Agora SDK在App提供的view上进行渲染。
显示视频视图必须调用该方法,而不是直接调用SurfaceView。

  1. 测试正常,偶发

    Fatal Exception: Java.lang.NullPointerException: Attempt to invoke virtual method 'Android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
    at io.agora.rtc.video.VideoCaptureCamera$1.onFaceDetection(SourceFile:224)
    at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1212)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:7325)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
    

分析:

FaceDetection是内部对Camera采集数据,应该是在音频的时候也开启了enableVideo这个方法,而这时camera是null。
在官网找解决方案,已经有人遇到这个坑:

https://dev.agora.io/cn/question/721

最后官方给的 解决方案是

这个问题我们已经在SDK 1.10里面修复了,1.10目前有Beta版,正式版最晚在5月中上旬发布

所以如果不是最新的SDK,请替换一下。

  1. 美颜 效果的添加(折腾的约一周) 。

给出的支持是kiwi的demo ,同样的ios 简单的传入对象就好了,android demo 有一个UI的libary ,demo app中还有jni ,准门问了下用不用集成这些cpp 文件(商务不懂技术果断的告诉我不用),于是在第一天完全没有任何效果。自己研究了代码,才发现必须参考demo的写法,调用jni方法 创建一个缓冲区进行对采集到的每一帧 进行渲染。

开始了调试生涯:
参照demo完全严格按照路径写了,但是报错

08-03 10:27:26.021 12905-13208/com.meodgame.wolfkill I/Choreographer: Skipped 101 frames!  The application may be doing too much work on its main thread.
08-03 10:27:26.022 12905-14860/com.meodgame.wolfkill W/AudioTrack: releaseBuffer() track 0xc070f8b0 disabled due to previous underrun, restarting
libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 11621 (ViECaptureThrea)

字面意思显然跳过了太多帧,考虑到主线程受阻,于是乎,又向各种办法来让它立即执行,无果。
参照demo 那种直接获取工作线程(app启动创建工作线程的写法很新颖)的方法,依然无果。

或者偶尔一下渲染的日志出来了,但是并灭有起效。

Paste_Image.png

最后想到了因为是u3d 混合开发,可能是 u3d 也在执行渲染引起的(原生的界面在u3d 之上),有时候会有

call to OpenGL ES API with no current context (logged once per thread),

这样的日志,总之是摸不着头脑。

最后验证是否是u3d 引起的,u3d导出一个几乎什么都没有的包,集包之后竟然完美运行!
那就不是u3d的原因。
仔细一想,因为声网的SDK版本!!

美颜demo里用的是 1.9.项目里刚更新到最新的1.12.

替换老的sdk,圆满起效。

这个事件前后差不多三天多,一开始就应该想到的,但是没有,找解决问题的方法从最开始触发的地方开始,也许能省下很多功夫。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容