Android通信模式下系统音量的选择 (通话音量/媒体音量)
mRtcEngine = RtcEngine.create(getApplicationContext(), mVendorKey, mRtcEventHandler);
// 默认应该是 通信模式
mRtcEngine.setChannelProfile(Constants.CHANNEL_PROFILE_COMMUNICATION);
// 通信模式下, 应该使用的通话音量
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_DEFAULT, Constants.AUDIO_SCENARIO_DEFAULT);

关于系统音量的选择, agora默认的是通信模式, 通信模式场景下 使用的是 通话音量, 但是 即使我在代码中设置了 这些默认值(且 都在joinChannel 之前设置的), 结果 在通信模式下, 还是使用的 媒体音量. 在调节音量时, 通话音量不会对 声音起 任何作用.
请问, 这是为什么呢? 或者有什么api可以获取到当前的音量是选择的通话音量还是媒体音量吗?

3个回答
技术支持团队 回复于 2020-06-09 09:23 · IP属地浙江

1,具体用哪个API来尝试调节音量的。 是 adjustRecordingSignalVolume()这个吗
2,没有这样的API

回复·1

不是使用的api来调节音量的, 使用的手机实体键 调节音量 (调节时 可以选择 媒体音量/通话音量/响铃音量/闹钟音量).

技术支持团队 回复于 2020-06-09 09:25 · IP属地浙江

可以试试 Default切换到SHOWROOM的场景

回复·1

试了, 还是 媒体音量, 参照 设置音频属性,
mRtcEngine.setAudioProfile(Constants.AUDIO_PROFILE_SPEECH_STANDARD, Constants.AUDIO_SCENARIO_CHATROOM_GAMING);
即使设置了 使用通话音量, 运行出来, 还是使用的媒体音量.
ps: 手机 OPPO Reno(PCCM00), 应该和手机无关…

zhu 回复于 2020-06-09 10:29

两台手机配置:
OPPO Reno(PCCM00):
android10.0, 系统设置中的声音设置 包含 媒体音量/铃声音量/闹钟音量 三种;
HUAWEI NOVA 3e(ANE-AL00):
android 9.0, 系统设置中的声音设置 包含 媒体音量/铃声音量/闹钟音量/通话音量 四种;

RtcEngine不设置参数, 使用RtcEngine的默认设置.

在Activity中设置setVolumeControlStream(AudioManager.STREAM_VOICE_CALL)时, OPPO实体按键不影响音量, HUAWEI正常;(OPPO调整音量的图标, 不是媒体音量, 也不是通话音量;华为是通话音量图标)
在Activity中设置setVolumeControlStream(AudioManager.STREAM_MUSIC)时, OPPO实体按键可以调节音量, HUAWEI也正常;(OPPO调整音量的图标, 是媒体音量;华为是通话音量图标)

==>
在Activity中不设置setVolumeControlStream, 或者设置setVolumeControlStream(AudioManager.STREAM_MUSIC)可以正常调整音量.

回复·1

根据手机不同做出调整这个思路是对的,其实这也是为什么推荐直接用API来调整的原因,因为没法用一个android sdk适配所有机型的硬件控制,有的手机音量设置通道只有两种,有的三种四种。 那你这里自己琢磨吧