看板 Python 關於我們 聯絡資訊
我嘗試寫一個函數來計算手機打電話的call setup time 先用dialTime記下撥出去時候的時間 然後用while迴圈不斷去確認手機是否有收到響鈴聲 當inCall()函數回傳值True時表示這通電話已經進入連結狀態 當foregroundCallState值為4的時候就是收到響鈴聲了 此時就用當下時間減去撥號時間 即能順利得到call setup time 平均每通VoLTE call的call setup time約0.5xxxxx秒 程式碼如下圖 https://i.imgur.com/SSCJmXr.png
我的問題是後面被我註解的那三行 因為有一種例外狀況是手機按下撥號 卻未如預期般地撥出而直接結束了這通電話 即inCall()函數會永遠都是False值而卡在無限迴圈 所以被我註解的部分原本概念是 若是撥號10秒之後發現並沒有成功進入連接狀態就回傳-1結束 但是因為多跑了這一個確認步驟 讓我的VoLTE call的call setup time暴增到約1.2xxxxx秒 想請問有沒有什麼方法在不影響迴圈執行效率的情況下倒數嗎? 至於為什麼不直接處理inCall()回傳False的原因是迴圈執行速度太快了 按下撥號的瞬間 程式碼會跑得比電話進入連接狀態還要快 意即電話還沒進入連結狀態之前迴圈就已經做出判斷了 所以若是多處理這步的話 那不管電話是不是真的有接通 都會先進入到inCall() == False這個部分 還請各位前輩指點一下 或是我用無限迴圈來做計算這個想法本身就是很大的bug? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.54.100 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1544353139.A.08B.html
v86861062: 圖片打不開:(12/09 19:51
不好意思,我更新了連結,麻煩您幫忙看一下,感謝 ※ 編輯: XperiaZ6C (124.218.54.100), 12/09/2018 20:14:32
ThxThx: https://stackoverflow.com/q/492519 12/09 22:24
感謝T大,我試試看用thread能不能解決 ※ 編輯: XperiaZ6C (104.133.15.107), 12/11/2018 12:10:13