2015-09-28 185 views
1

所以我想使用Stack Overflow中的一些代碼來將音頻從耳機路由到揚聲器。Android AudioManager.setSpeakerphoneOn在睡眠後停止工作

什麼我目前做的是:

AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); 
am.setMode(AudioManager.STREAM_MUSIC); 
am.setSpeakerphoneOn(true); 
sleep(15000); 

什麼情況是,「睡眠」期間,音頻路由,但它在15秒後回來的耳機。 如果我在沒有睡眠的情況下執行此操作,聲音將很快傳到揚聲器並返回耳機。

在這個調用之後,我的程序就不存在了。我希望這將持續在系統中,因爲應用Headset Toggle確實

+0

嘗試使用'AudioManager.MODE_IN_CALL',但得到了相同的結果。 – GuiFGDeo

回答

0

我不明白爲什麼我的方法不起作用,但我找到了解決方法。

什麼我目前做的是:從this post

Class audioSystemClass = Class.forName("android.media.AudioSystem"); 
Method setForceUse = audioSystemClass.getMethod("setForceUse", int.class, int.class); 
// First 1 == FOR_MEDIA, second 1 == FORCE_SPEAKER. To go back to the default 
// behavior, use FORCE_NONE (0). 
setForceUse.invoke(null, 1, 1); 

感謝邁克爾。