2013-10-11 32 views
3

我使用谷歌語音識別進行連續識別,這意味着爲了避免每隔幾秒(果凍豆中的錯誤)發出嘟嘟聲,我必須靜音並取消靜音系統音量。Android系統音量不會取消靜音直到卸載

要做到這一點我使用:

mAudioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true); 

,並以虛假同樣的事情。

我遇到的問題是,在許多設備上零星和重現,系統音量將變爲「鎖定」,直到卸載或重新啓動。

當服務停止時,我確保取消靜音系統音量,但似乎沒有影響它。

也許這是因爲AudioManager並不打算如此頻繁地取消靜音和靜音?歡迎任何幫助。

+1

由於操作太快,我得到AudioManager「死鎖」。嘗試捕捉問題原因的一些logcat行。 – Kristopher

回答

3

爲setStreamMute Android文檔:

靜音或取消靜音的音頻流。

...

對於給定的流,靜音請求是累計:在AudioManager 可以從一個或多個客戶端接收數個靜音請求和 流將被忽略,只有在相同數量的取消靜音請求 的收到。

...

這最終成爲了問題。如果存在導致此鎖定的錯誤,我會調用比unmutes更多的靜音。