- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在研究 AudioManager,它是一个 Android 系统服务。对于 Android System 5.0+,我遇到了 AudioManager 的 setMode 方法不起作用的问题。
我通过测试,Android M、Lollipop.. 5.0+ 版本,AudioManager setMode 不工作。示例:
public void initAudioImageIcon(boolean initLoad) {
boolean isAudioHeaderMode = IMSharedPreferences.getBooleanExtra(this, IMSPConstant.SP_NAME_MESSAGE,
IMSPConstant.SP_KEY_AUDIO_HEADER_MODE);
if (isAudioHeaderMode) {
mAudioHanderMode.setVisibility(View.VISIBLE);
// audioManager.setMode(AudioManager.MODE_IN_CALL) , but android system 5.0+ no any change, getMode() == AudioManager.MODE_NORMAL
setAudioMode(AudioManager.MODE_IN_CALL);
audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
if (!initLoad) {
showAudioModePrompt(this.getText(R.string.im_audio_in_call), 1000);
}
} else {
mAudioHanderMode.setVisibility(View.GONE);
setAudioMode(AudioManager.MODE_NORMAL);
if (!initLoad) {
showAudioModePrompt(this.getText(R.string.im_audio_in_speeker), 1000);
}
}
}
但是Android 3.0+,4.0+还可以,只有5.0+。所以,我不知道哪里会发生错误。
最佳答案
音频模式设置为:
setMode(AudioManager.MODE_IN_COMMUNICATION);
setSpeakerphoneOn(false);
当我的音频流设置为 STREAM_MUSIC 时,我可以轻松地将音频路由到耳机。我自己在 AOSP Lollipop 代码中测试过它。
在这个问题中,您从未提到过您的流类型。请将您的流设置为 STREAM_MUSIC 或 STREAM_VOICE_CALL,代码也应该适用于您。
关于Android 5.0+ AudioManager setMode 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871328/
每当我使用它时,它都会使我的应用程序崩溃。此外,对于振动模式,当我使用audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE)时,它会打
我正在尝试获取 ring 音量,但它总是给出 0,不管 我将其设置为多少音量(我通过“设置”访问它来做到这一点在电话里)。 audioManager.getstreamVolume(AudioMana
我正在制作一个说出来电者姓名的应用程序,该应用程序在使用 TextToSpeech 说出来电者姓名之前暂停铃声。我正在使用 检测当前的 Volume int musicVolume = audioMa
调用 AudioManager.setRingerMode 有什么区别?调用AudioManager.setStreamMute(AudioManager.STREAM_VOICE_CALL, ...
我正在尝试在通话时启用扬声器: final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AU
AudioManager中有几种流类型.他们在低水平上有何不同?难道是使用例如AudioManager.STREAM_MUSIC 阻止输入麦克风流?还是别的? 最佳答案 一个最显着的区别是音量控制。
我尝试在播放媒体时通过 setMode(mode_in_call) 更改音频模式。所以,我确定我添加了权限 我这样写代码:AudioManager mAudioManager = (AudioMana
我的 getVolume() 方法总是返回 1.0。我已将手机静音,更改了音量,但是当我调用我的方法时,我随时都会收到 1f。我错过了什么吗? btnPlay.setOnClickListener(n
在进行视频聊天的 WebRT 应用程序中,我想将手机设置为使用免提而不是耳机播放声音。 我尝试过使用AppRTCAudioManager(它包装了AudioManager)来设置静音和设置扬声器,直接
通过按后退按钮关闭我的 Activity 后,我面临内存泄漏: 由于我无法弄清楚它是什么,所以我将几乎整个代码注释为: protected void onCreate(Bundle savedInst
安卓AudioManager有方法public void setStreamVolume (int streamType, int index, int flags) . 我不想使用任何标志,因为它们
我在 Activity 中执行以下代码来设置铃声模式和值: void setRinger(int value) { AudioManager manager = (AudioManager)t
当文本到语音系统说出一个短语时,我试图让音频播放器静音。正如预期的那样,audiomanager 在请求音频焦点时降低音量,但在调用 abandonAudioFocus 时,音量不会恢复并且不会调用
我在第 219 行收到空指针异常:amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);。以前没有发生过,今天我第一次看到,我使
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); switch (am.getRingerMode())
当使用以下代码建立电话调用时,我通过附件设置扬声器: audioManager.setMode(AudioManager.MODE_IN_CALL); audioManager.setSpeakerp
在我的 Android 应用程序中,我有一个方法,可以让我调整音量。这就像它应该的那样工作。 public void adjustVolume(int adjustType){ if(myAu
在我正在开发的应用程序中,当前台服务发生更新时,我们必须通过蜂鸣声通知用户。 我们使用这个 foreground service用于录音。要播放哔哔声,我们使用扬声器。我们在播放 beep 之前启用电
我正在构建一个媒体播放器并以类似于文档的方式实现 onAudioFocusChange(): OnAudioFocusChangeListener afChangeListener = new OnA
我正在使用 AudioManager 在调用电话之前通过听筒播放声音,因此我使用 AudioManager setMode(MODE_IN_CALL)。 我没有遇到任何问题,除了在 Galaxy S3
我是一名优秀的程序员,十分优秀!