我需要通过听筒播放一些音频。我正在使用AudioTrack在设备上播放一些声音。音频模式设置为STREAM_VOICE_CALL。
另外,在我的 Activity 中,扬声器通过以下方式关闭:
AudioManager am;
am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setSpeakerphoneOn(false);
这似乎在2.3设备上完美运行。但是在2.1上,扬声器仍在播放声音。
为了解决此问题,我尝试将setMode()用作:
am.setMode(AudioManager.MODE_IN_CALL);
这样,声音通过听筒播放了2.1和2.3,但大多数时候根本没有播放2.3。
另外,我在某些地方读到,应用程序不应使用setMode(),因为它会影响系统范围的电话状态。
这里:http://code.google.com/p/sipdroid/issues/detail?id=270
有什么帮助吗?
最佳答案
在2.3以下,Android的setSpeakerPhoneOn()
有点问题。按照this answer,我认为您需要同时使用这两种API方法。
关于根本没有播放2.3音频的问题,请检查您的通话音量设置(将使用此设置)。在也使用setMode()
之前,请尝试跟踪电话所处的状态,一旦不再使用音频管理器,则可能将其设置回MODE_NORMAL
。
关于android - setSpeakerphoneOn()在2.1上不起作用,在2.3上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233201/