百度CarLife Android车机端黑屏问题
手機端與車機端通過carlife連接后,車機端畫面與手機同步,在carlife軟件內(nèi)點擊退出后,在車機端再次點擊APP,車機端黑屏,不能同步手機端畫面。
2.分析
在車機端點擊退出時,調(diào)用了銷毀Activity的方法:
getActivity().finish();只有carLife的后臺服務(wù)還沒銷毀,當(dāng)再次啟動的時候這個Activity再次啟動,新建surfaceView,兩次日志比較如下圖:
基本上沒什么區(qū)別,但是第一次進有界面同步,第二次卻是黑屏。
后面發(fā)現(xiàn)與視頻頭幀sps和pps有關(guān)。
在ShowFragment里獲取了視頻的頭幀sps和pps,在界面內(nèi)退出時,銷毀了界面,也刪除了頭幀信息,后面雖然有數(shù)據(jù)繼續(xù)傳輸?shù)杰嚈C端,但是缺少了sps和pps就解不了碼,因此黑屏。
那為什么手機USB線斷開后,再次連接就連得上呢?
因為手機USB斷開之后,車機端將重新開啟ADB,并反初始化各參數(shù),而手機端則停止了視頻傳輸,當(dāng)再一次連接時,會重發(fā)頭幀sps和pps,自然可以解碼成功。
3.解決
因為希望carlife界面內(nèi)退出,carlife后臺服務(wù)繼續(xù),所以不能像手機斷開USB后那樣處理,所以解決辦法是記下sps和pps數(shù)據(jù),但是不能在Activity中記,因為退出時會被銷毀,這里在AppManager這個管理Activity的類里記,然后在顯示的ShowFragment里需要視頻頭幀的時候取出,車機視頻就不在黑屏。
總結(jié)
以上是生活随笔為你收集整理的百度CarLife Android车机端黑屏问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三张图片怎么拼成一张?
- 下一篇: 疫情让“灵活用工”浮出水面,作为Andr