android - 如何使用 AudioManager.STREAM_VOICE_CALL 更改通话音量

标签 android android-audiomanager

我有一个通话申请。我创建轨道并播放声音。

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRateInHz, AudioFormat.CHANNEL_CONFIGURATION_MONO, audioFormat, minBufferSize, AudioTrack.MODE_STREAM);

但是当我按下音量按钮时,“媒体”的音量发生变化,而不是“通话”。

我可以让音量按钮控制“通话”音量吗?

我找到了一种改变“通话”音量的方法,但我需要使用设备上的音量按钮来完成。

audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 10, AudioManager.FLAG_SHOW_UI);

最佳答案

我在 IN_CALL 中使用音频管理器 setMode,它适用于我的 VoIP 应用程序。

audioManager.setMode(AudioManager.MODE_IN_CALL);


 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.d(THIS_FILE, "Key down : " + keyCode);
 switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_DOWN:
            case KeyEvent.KEYCODE_VOLUME_UP:

                // Volume has been adjusted by the user.

                Log.d(THIS_FILE, "onKeyDown: Volume button pressed");
                int action = AudioManager.ADJUST_RAISE;
                if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
                    action = AudioManager.ADJUST_LOWER;
                }

                // Detect if ringing
                SipCallSession currentCallInfo = getActiveCallInfo();
                // If not any active call active
                if (currentCallInfo == null && serviceConnected) {
                    break;
                }

                if (service != null) {
                    try {
                        service.adjustVolume(currentCallInfo, action, AudioManager.FLAG_SHOW_UI);
                    } catch (RemoteException e) {
                        Log.e(THIS_FILE, "Can't adjust volume", e);
                    }
                }
                return true;
}

关于android - 如何使用 AudioManager.STREAM_VOICE_CALL 更改通话音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55789214/

相关文章:

android - 如何在android中计算设备级别的FPS

android - 如何从 Android 应用程序将铃声音量从低调到高

android - 选择通知音

android - 标志参数是什么意思以及机器人设备可能的最小值和最大值的范围是什么

android - Android 中是否可以检测 Whatsapp 语音通话结束?

android - Nivo Lightbox - 在移动 View 中出现滚动问题

android - Appsync 离线查询在 android 中不起作用

android - PackageManager.getInstalledPackages() 返回空列表

Android:打开大型 zip 文件

android - 让 MediaPlayer 和 AudioManager 通过耳机而不是扬声器播放?