android - setSpeakerphoneOn()在2.1上不起作用,在2.3上不起作用

标签 android audio android-audiomanager audiotrack speakerphone

我需要通过听筒播放一些音频。我正在使用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/

相关文章:

android - 通过电子邮件发送 WhatsApp 聊天时,如何让我的 Android 应用程序出现在应用程序选择器中?

iphone - iOS Advanced Audio API 解压格式

html - 让盲人适应网站

android - 我们可以在不影响设备音量的情况下将Android应用的音量设置为相对于设备的音量吗?

android - OnKeyListener 句柄按下两次

Android 在应用程序中加载和播放声音的最快方式

android -/proc/config.gz 不存在

android - 通过短信链接打开应用程序不适用于某些消息传递应用程序

android - 如何在 OpenGL 中翻转图像?

web-applications - 如何在网络浏览器中弹奏乐器笔记?