Android WebRTC 实现 - 音量非常低

标签 android webrtc-android

我使用以下示例在我的应用程序中实现了视频 session 选项: https://github.com/androidthings/sample-videoRTC

基本上是工作得很好,但我有一个主要问题。即使我将设备的音量调到最大,尖叫声的音量也非常低。

我试图检查是否有任何参数可以定义音频音量,但无法在 AudioBitRate(=32) 和 AudioCodec=("OPUS") 旁边找到此类参数。

这些是用于创建 peerConnection 的参数:

    peerConnectionParameters =
            new PeerConnectionClient.PeerConnectionParameters(true,
                    false,
                    false,
                    videoWidth,
                    videoHeight,
                    0,
                    Integer.parseInt(getString(R.string.pref_maxvideobitratevalue_default)),
                    getString(R.string.pref_videocodec_default),
                    true,
                    false,
                    Integer.parseInt(getString(R.string.pref_startaudiobitratevalue_default)),
                    getString(R.string.pref_audiocodec_default),
                    false,
                    false,
                    false,
                    false,
                    false,
                    false,
                    false,
                    false,
                    null);

有人知道如何提高音量吗?

我曾尝试替换默认的音频编解码器,但结果仍然是低音量。

最佳答案

经过多次检查和调查,我发现了问题。如果其他人遇到同样的问题,我会在这里回答。

我注意到声音没有路由到扬声器,而是路由到耳罩...所以我添加了下面的代码来打开扬声器,问题就解决了!

    audioManager = (AudioManager) this.activity.getSystemService(Context.AUDIO_SERVICE);
    audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);

为了回答我把代码放在哪里的问题,我实际上添加了一个新图标,让用户可以在耳机和扬声器之间切换。

完整代码如下:

    toggleSpeakerHeadset.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (speakerOn) {
                setHeadsetOn();
            } else {
                setSpeakerOn();
            }
        }
    });

private void setSpeakerOn() {
    speakerOn = true;
    toggleSpeakerHeadset.setImageResource(R.drawable.headset);
    audioManager.setSpeakerphoneOn(true);
    audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}

private void setHeadsetOn() {
    speakerOn = false;
    toggleSpeakerHeadset.setImageResource(R.drawable.speaker);
    audioManager.setSpeakerphoneOn(false);
    audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}

关于Android WebRTC 实现 - 音量非常低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212048/

相关文章:

java - 如何使用 sdp 详细信息在 "offer"端点上调用 POST 方法?

android - 如何在原生 android 2019 中使用 WebRTC

android - 在 Android 中按下撤消时会触发哪个事件

前台服务中的 Android webRTC 调用

javascript - javascript 中的 Android WebView : is there a way,,加载另一个 javascript 文件并保留堆栈跟踪的文件名/行号信息?

android - 如何从proguard中保留枚举

linux - 无法为 Android 编译 WebRTC 库

webrtc - 如何在语义webrtc android中设置统一计划

Android动态设置textview布局宽度

android - 复制 Eclipse/Android 项目 - 现在运行时出错