java Android webRTC音频卷
我正在安卓上使用APPRTCdemo应用程序。我试着让它播放来自另一个同伴的声音,音量和安卓设置的一样大。因此,如果用户将设备静音,音频将听不到。 我尝试了几乎所有的Android API调用,但似乎没有任何东西对音量有任何影响。 以下是我尝试过的事情: AudioManager AudioManager=(AudioManager)\u上下文。getSystemService(Context.AUDIO_服务); int volume=音频管理器。getStreamVolume(AudioManager.STREAM\u VOICE\u呼叫)
volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
volume =audioManager.getStreamVolume(AudioManager.STREAM_RING);
volume =audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
volume =audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION);
volume =audioManager.getStreamVolume(AudioManager.STREAM_SYSTEM);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
audioManager.setStreamVolume(AudioManager.MODE_IN_COMMUNICATION, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 0,AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
audioManager.setStreamMute(AudioManager.MODE_IN_COMMUNICATION, true);
audioManager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
audioManager.setStreamMute(AudioManager.STREAM_RING, true);
audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);
audioManager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
# 1 楼答案
如果要使流静音,可以执行以下操作:
如果流中有多个音频曲目,可以循环播放。这是经过测试的代码,静音/取消静音工作绝对正常
# 2 楼答案
如果您只想静音音频,可以使用smth,如以下结构:
在webrtc的源代码中,您可以找到src/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/webrtcadiotrack。使用
更改音量的代码(我认为应该可以)。所以你的问题可能在其他地方
# 3 楼答案
我也面临同样的问题。我没有找到任何关于它的文档,但我发现你不能使
AudioManager.STREAM_VOICE_CALL
流静音。即使你将音量设置为0,你仍然可以听到它我不知道这是安卓系统的一部分,还是制造商做出的修改,但我测试了几款具有相同行为的手机和平板电脑
这是很容易测试的,如果你在通话中尝试静音,你可以按音量下降键,但它不允许你完全静音
我猜这一切背后的想法是,当唯一的问题是音频被静音时,防止用户认为通话不能正常工作