【问题标题】:Android WebRTC implementaion - very low volumeAndroid WebRTC implementationaion - 非常低的音量
【发布时间】:2019-05-19 21:13:25
【问题描述】:

我使用以下示例在我的应用程序上实现了视频会议选项: 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);

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

我尝试更换默认的音频编解码器,但结果还是一样的低音量。

【问题讨论】:

    标签: android webrtc-android


    【解决方案1】:

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

    我注意到声音不是路由到扬声器而是到耳帽...所以我添加了下面的代码来打开扬声器并且问题已经解决了!

        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);
    }
    

    【讨论】:

    • 我的应用也有同样的问题。我想问我应该把这段代码放在哪里?
    • 它应该在请求许可之后和发起呼叫之前放置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多