我試圖找到這個答案,但我的搜索不斷返回不相關的結果...
所以問題是 - 我正在寫一個播放聲音效果的遊戲(沒有音樂),我設置流類型爲音樂。但是,當我將手機置於靜音模式時(無論是否振動,如果這很重要),應用程序仍會播放聲音。我可以使用音量鍵關閉應用程序中的聲音,但是我期望的(以及我未來的用戶可能會期望的)是當手機處於靜音模式時,應用程序不會發出聲音。
在這一點上,我不確定這是否應該由操作系統自動管理,或者如果我期望對此做些什麼。我可以確定檢測到靜音模式,在例如onResume
中將音量設置爲0,但這可能會覆蓋用戶通過按音量按鈕設置的設置 - 因此,當他們取消靜音手機時,應用程序必須以編程方式設置音量到一個預定義的值,或理想情況下,從sharedPrefs保存一個...聽起來相當繁瑣。有更好的解決方案嗎?
這是我如何初始化&然後用聲音:在靜音模式下手動靜音Android應用程序中的聲音?
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 100);
soundPoolMap = new SparseIntArray();
soundPoolMap.put(CLICK_1, soundPool.load(activity, R.raw.click1, 1));
soundPoolMap.put(CLICK_2, soundPool.load(activity, R.raw.click2, 2));
...
float volume = 1.0f;
soundPool.play(soundPoolMap.get(soundID), volume, volume, 1, 0, 1f);
謝謝,這個解決方案爲我創造了奇蹟。 – 2017-09-26 12:14:32